{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "成绩分布统计：\n",
      "不及格    12\n",
      "及格      0\n",
      "中等      9\n",
      "良好      9\n",
      "优秀      0\n",
      "Name: 分数区间, dtype: int64\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArAAAAIlCAYAAAAt78tGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABlsklEQVR4nO3deVxU9f7H8fdhEERkkUVFwX0Br/uWZqWlaWZqu6m3tKwsKzUts821wrLSyl/dq93kVre0xW6aZVlpVi654JpL7nsKIriCMN/fH14mRwZkEByPvp6Ph4/ic75z5vOdc2Z4z+HMGcsYYwQAAADYhJ+vGwAAAAC8QYAFAACArRBgAQAAYCsEWAAAANgKARYAAAC2QoAFAACArRBgAQAAYCsEWAAAANgKARYAAAC2QoAFCjBq1ChZlqX58+f7uhWfqlatmqpVq+brNi6IOXPmqFWrVgoLC5NlWerbt2+xrduyLLVr167Y1nc589U+mZSUJMuylJSU5Fb35bbt27evLMvS9u3bXbX58+fLsiyNGjXKJz1Jl9frBi48Aixsb/ny5erXr59q166t4OBgBQUFqWbNmrr77rs1d+5cX7eHYuDpF3RJ2LZtm26++Wbt3LlT999/v0aOHKmbb765RO8TsOsb5Qv1vAQ88fd1A0BROZ1OPfHEE5owYYL8/f113XXXqVu3bipVqpS2bt2q2bNn68MPP9SYMWP0/PPP+7pd2MAPP/ygzMxMvf7667rrrrt83Q5sZP369SpTpoxP7jsxMVHDhw9X5cqVfXL/+fnhhx983QIuYQRY2NZzzz2nCRMmqHHjxvrss89Us2ZNt+UnTpzQpEmTlJqa6qMOYTd79+6VJFWsWNHHncBu4uPjfXbfMTExiomJ8dn95+fs12SgOHEKAWxp8+bNeuWVVxQZGak5c+Z4fKEMCgrSk08+qdGjR7vVU1NT9fjjj6t69eoKDAxU+fLl1aNHD/3++++Fuu+Czi3bvn27x/Mmc88FS09P18MPP6yYmBgFBwfrmmuu0YoVKyRJ+/fvV58+fVS+fHmVKVNGnTp10ubNm/PcR+65dgcPHtR9992n8uXLKygoSK1atfL6T5BZWVl644031LJlS4WEhKhs2bKqV6+ehgwZorS0tDzjjx07piFDhqhy5coKDAxUw4YN9dlnn+UZt2nTJg0bNkxNmzZVZGSkSpcurTp16mj48OE6evRonvHt2rWTZVnKzMzUiBEjVKtWLZUqVUqjRo1StWrV9O9//1uSVL16dVmW5dX5huvWrVOPHj1Uvnx5BQYGqnr16nr88cd16NAh15jc7TZy5EhJ0rXXXuu6n8L8efTAgQN64oknVLduXZUuXVoRERFq1aqVXnvttXPe1tvHat++fRo0aJBq166toKAgRUREqEGDBhowYIAyMjJc49LT0zVixAjVq1dPZcuWVVhYmOLj43Xvvfdq165dhXjkpOPHj2vYsGGKi4tT6dKlVb9+fU2ZMiXf50DudtmzZ4/69u2rihUrys/Pz7Vfzps3T/fdd5/q1q2rsmXLqmzZsmrevLkmT56cbw9ffvmlWrRooaCgIFWoUEEPPPCAx30zV1ZWll5//XU1bdpUwcHBCgkJ0dVXX62ZM2cWas65Dh06pIceekgVKlRQmTJl1KJFC33xxRf5jve0TxZmG7Rr1871GnXmfnfmuaO5rx+HDx/WwIEDFRcXJ39/f9d5uOf6U/6CBQvUtm1blS1bVhEREerVq5d2795dqDmc3cOZP5/reZnfObDHjx/XqFGjFB8f73q+dOnSRQsXLswz9szTKz755BM1bdpUQUFBiomJ0cCBA3XixAmP/eLSxxFY2FJSUpJycnLUv39/VahQocCxgYGBrv9PTU1Vq1attHnzZrVr10533XWXtm/frs8++0yzZ8/W3Llz1bp16xLpOSsrS9dff71OnjypHj166M8//9Qnn3yiDh06aOHChbrhhhtUsWJF/f3vf9fmzZs1a9Ys3XTTTVq3bp0cDofbug4fPqw2bdooNDRUvXv31oEDBzR9+nR16tRJy5cvV/369c/Zz8mTJ9WpUyctWLBAtWvX1r333qvAwED98ccf+sc//qF77rlH5cqVc40/deqUOnbsqEOHDunWW2/V8ePHNW3aNN15552aM2eOOnbs6Bo7Y8YM/etf/9K1116rdu3ayel0avHixXr55Zf1008/acGCBSpVqlSenm699VatWrVKnTp1UkREhGrUqKHBgwcrKSlJq1at0qBBgxQeHi5JhfpwyMKFC9WxY0dlZmbq9ttvV7Vq1bR48WJNnDhRs2fP1qJFixQZGanw8HCNHDlS8+fP108//aQ+ffq41p97f/n5448/dO2112rPnj266qqrdPPNN+vYsWNau3atXnzxRQ0dOrTA23vzWB0/flxt2rTR9u3b1bFjR91yyy3KysrS1q1blZSUpGHDhik0NFTGGHXq1ElLlixRmzZtdMMNN8jPz0/bt2/XF198oT59+iguLq7AvnJycnTTTTdp3rx5atSokXr16qVDhw5p6NChBb55SE1NVevWrRUREaEePXooKytLoaGhkqSXX35ZmzdvVqtWrXTLLbfo8OHDmjNnjvr376+NGzfmCfzvv/+++vTpo9DQUN19990KDw/XV199pQ4dOigrK0sBAQFu4zMzM3XDDTdo/vz5atKkifr166dTp05p9uzZ6t69u9566y09+uijBc4793Fu166d1qxZo9atW6tt27batWuXevTo4bafF6Sw2yD3ze659rvMzExdd911OnLkiLp27aqAgIBzvvZJ0uLFi5WYmKguXbpo4MCBWrFihT7++GP98ssvWrp0aaHW4UlRn5eZmZlq3769Fi9erKZNm2rw4MGu16/vvvtO06dP16233prndv/3f/+nb775Rt27d1e7du00Z84cvfXWW0pNTdV//vOfIs0BNmcAG2rXrp2RZL7//nuvbnffffcZSebpp592q8+ZM8dIMrVr1zY5OTmu+siRI40kM2/ePFdt3rx5RpIZOXJknvVv27bNSDJ9+vRxq1etWtVIMnfccYc5deqUqz5u3DgjyYSHh5vHH3/cOJ1O17KHH37YSDIzZsxwW5ckI8kMGDDArdd3333XSDL9+/cv1GPx5JNPGknm7rvvNtnZ2W7LDh8+bI4cOZKn/+7du5vMzExX/fvvvzeSTKdOndxuv3v3brdxuUaPHm0kmQ8//NCt3rZtWyPJNG7c2KSmpua5XZ8+fYwks23btkLNzRhjcnJyTO3atY0kM2fOHLdlTz/9tJFk+vXr51b3tL3PpWXLlkaSmTx5cp5lu3btcvtZkmnbtq1bzZvHaubMmUaSefzxx/OMz8jIcK1n9erVRpK55ZZb8ow7efKk27bNT+7+1K1bN7f9bP369aZ06dIenwO5++a9996bZ58yxpitW7fmqZ06dcpcf/31xuFwmB07drjq6enpJjQ01AQHB5uNGze66llZWeaaa64xkkzVqlXd1vXMM88YSWbUqFFuz6WMjAzTvHlzExAQYPbs2XPOuefuBw888IBb/dtvv3XNcerUqXnmfua29WYbnGu/y33+dezY0Rw/fjzPck/P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Q0NVvXp1bd682XWu/bl6PZdzbYOi7N+F9euvv+Y5xeTEiRNavny5goKC3M4vLleunMfXte3bt3v8M723fYeGhqpGjRravHmzx/sp7GswIBFgYVO1atXSsGHDlJKSos6dO2vbtm15xpw8eVKvv/6661qVAQEB6tmzp1JSUpSYmOg29vvvv9c333yjWrVqqU2bNgXed+41LGfOnOl2LdE///xTL7zwwvlP7gLw9/dX//79lZ6erkGDBuX5BZSenu7xGqSFkXue78KFC91OLdi9e7eGDx9epHXmfrDL07Ur89OmTRvVrFlT33zzTZ4PQiUmJiolJUU9e/b0+AGqwmrRooVatmypBQsW5DmqKJ37yKy3j9XatWu1Y8eOPPXcI1e5H/DZtm2bx+sanz2uIL1795YkPf/88269bdiwIc/R0sLInesvv/ziVv/pp588Pnbdu3dXaGio3nvvPbfzNE+dOpXnQ5jS6X364Ycf1o4dO/TEE094DLFr167N94jkme6++25lZWVpxIgRbvXvvvuu0N8u5c02KMr+XVgbN27Ue++951YbP368Dh48mGf/b968ubZv3+72pi8rK0tDhgzxuO6i9N2nTx+dOnVKTz/9tFuwXrt2raZOnaqwsDC+vhmFwikEsK0XXnhBJ0+e1IQJE1S3bl1dd911ql+/vkqVKqVt27bp+++/V2pqqluozL225gsvvKCFCxfqiiuucF0HtkyZMpo6darbJ649CQgI0KOPPqpx48apadOm6t69u44cOaJZs2apbdu2riNNF7sxY8Zo8eLF+uCDD7R48WJ17txZgYGB2rp1q+bMmaNffvmlSEdCYmJidNttt+nzzz9X8+bN1b59e/3555/66quvdN1112nr1q1er/O6667Tq6++qv79++uOO+5QcHCwqlSp4rqKgyd+fn5KSkpSp06ddOONN+qOO+5Q1apVtWTJEv3444+qWbOmxo0b53UvZ/vwww/Vrl07Pfjgg/rggw/UunVrnTx5UuvWrVNycnKB3wTn7WP1/fffa+jQoWrTpo3i4+MVGRmprVu3aubMmQoKCnJduWDVqlW65ZZb1KJFC9WvX18VK1bUnj179N///lcOh+Oc16aVpHvvvVcffPCBZs6cqWbNmqlTp046dOiQpk2bpuuvv16zZs0653PlTF27dlW1atX0yiuvaO3atapfv742btyo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V6edntNFfLTyUjwC+2STaN7hMifmxJyYE3NiTjacU1pamiIjI5Wenu7Ka/m5qI/AVqxYUdLpI7FnBtgDBw7kOSp7psDAQAUGBuap+/v7y9/ffcq5D/7Zch/MwtbPXq8sS5JkLM/jPdYty8u6n4zlYeX51E8HUy/qfl70nl/9As8pd1sWejsVoW5Zlsd6fvuSt/Xz3veKUGdOzEliTvn16G2dOTEniTnl12NR6p74/CoEBalevboqVqyouXPnumpZWVn66aefdOWVV/qwMwAAAPiKz4/AHj16VJs3b3b9vG3bNq1cuVIRERGqUqWKBg8erJdeekm1a9dW7dq19dJLL6lMmTLq1auXD7sGAACAr/g8wC5btkzXXnut6+chQ4ZIkvr06aOkpCQNGzZMJ06c0IABA5SWlqYrrrhC3333nUJCQnzVMgAAAHzoovoQV0nJyMhQWFhYoU4KLi7jklMuyP3A3fAmUb5uAQAAFIE3ee2iPgcWAAAAOBsBFgAAALZCgAUAAICtEGABAABgKwRYAAAA2AoBFgAAALZCgAUAAICtEGABAABgKwRYAAAA2AoBFgAAALZCgAUAAICtEGABAABgKwRYAAAA2AoBFgAAALZCgAUAAICtEGABAABgKwRYAAAA2AoBFgBs5MiRIxo8eLCqVq2qoKAgXXnllVq6dKmv28J5YrsC3iHAAoCN3H///Zo7d64++OADrVmzRh07dlSHDh20Z88eX7eG88B2BbxjGWOMr5soaRkZGQoLC1N6erpCQ0MvyH2OS065IPcDd8ObRPm6BaDEnDhxQiEhIfryyy/VpUsXV71x48a66aab9MILL/iwOxQV2xU4zZu8xhFYALCJ7Oxs5eTkqHTp0m71oKAg/fLLLz7qCueL7Qp4jwALADYREhKi1q1ba+zYsdq7d69ycnL04YcfasmSJdq3b5+v20MRsV0B7xFgAcBGPvjgAxljVLlyZQUGBurNN99Ur1695HA4fN0azgPbFfAOARYAbKRmzZr66aefdPToUe3atUu//fabTp06perVq/u6NZwHtivgHQIsANhQcHCwYmJilJaWpm+//Vbdu3f3dUsoBmxXoHD8fd0AAKDwvv32WxljVLduXW3evFlPPvmk6tatq3vvvdfXreE8sF0B73AEFgBsJD09XY888oji4+N1zz336KqrrtJ3332nUqVK+bo1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BgzI88EqPz8/DRgwQFu2bMnnlgAAAMD58zrAVq1aVcePH/e47Pjx44qLizvvpgAAAID8eB1ghw4dqjFjxiglJcWtfuDAAb3wwgt64okniq05AAAA4GxenwO7du1aZWRkqFq1amrfvr0qVqyo/fv364cfflBUVJTWrVungQMHSjp9Qd033nij2JsGAADA5cvrADtp0iTX/8+aNctt2c6dO92WE2ABAABQ3LwOsHwDFgAAAHypSF9kAAAAAPhKkb9K9ocfftAPP/yg1NRURUVFqX379rruuuuKszcAAAAgD68DbFZWlm677TZ9/fXXMsbI399f2dnZGjdunLp06aLPP/9cpUqVKoleAQAAAO9PIRgzZoy+/fZbjRs3Tn/++aeysrL0559/6uWXX9a3336rMWPGlESfAAAAgKQiHIH9+OOP9cwzz+jJJ5901aKjo/XEE0/o6NGjev/99zV27NhibRIAAADI5fUR2N27d+vqq6/2uOzqq6/Wnj17zrspAAAAID9eB9jo6GitWbPG47I1a9YoOjr6vJsCAAAA8uN1gO3WrZtGjBihGTNmuNW//PJLjRo1St27dy+25gAAAICzeX0O7Isvvqhff/1Vd9xxh4KDg1WxYkX9+eefOnr0qBo0aKAXX3yxJPoEAAAAJBUhwJYrV06//fabkpKSNG/ePKWmpqpp06Zq37697rnnHgUGBpZEnwAAAICkIn6RQWBgoPr376/+/fsXdz8AAABAgYr8TVwbNmzQTz/9pJSUFPXr108VK1bU3r17Va5cOQUFBRVnjwAAAICL1wE2JydHDz74oJKSkmSMkWVZ6ty5sypWrKj+/furSZMmfJkBAAAASozXVyF48cUX9dFHH2n8+PFau3atjDGuZZ07d9acOXOKtUEAAADgTF4fgU1KStLzzz+vIUOGKCcnx21Z9erVtW3btmJrDgAAADib10dg9+zZo9atW3tcVrp0aR05cuS8mwIAAADy43WALV++vLZu3epx2caNGxUbG3veTQEAAAD58TrA3njjjXrxxRe1Z88eV82yLKWnp+vNN99U165di7VBAAAA4ExeB9gxY8YoOztb9erV02233SbLsvTMM8+ofv36OnnypJ5//vmS6BMAAACQVIQAW6FCBS1dulQ9e/bU8uXL5XA4tGrVKnXu3FkLFy5URERESfQJAAAASCriFxlUqFBB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XObk1ZxeW32I55MP5jS0UWSJ7XuvrUplO/lgTkMbRV6SrxHM6cLNKS0tTZGRkUpPT3fltfx4fQS2U6dOkqSkpCT9+9//dltmjJFlWXkaOx8xMTGqV6+eWy0hIUGff/55vrcJDAxUYGBgnrq/v7/8/d2nnPvgny33wSxs/ez16n+h3liex3usW5aXdT8ZT5+ly6d++sXMi7qfF73nV7/Ac8rdloXeTkWoW5blsZ7fvuRt/bz3vSLUL+c55f7S5vl0YeeUu21KYt87sy+204Wb05nb8VJ6jShqnTkVz5zy43WAPfPDVBdCmzZttHGj+585Nm3apKpVq17QPgAAAHBx8DrA9unTpyT6yNfjjz+uK6+8Ui+99JLuvPNO/fbbb5o8ebImT558QfsAAADAxeG8vshg48aN+vXXX3Xs2LFzDy6iFi1a6IsvvtDHH3+s+vXra+zYsZo4caJ69+5dYvcJAACAi1eRAuz777+v2NhY1atXT9dcc43rT/x33nmnpkyZUqwNStJNN92kNWvW6OTJk1q/fn2Bl9ACAADApc3rAPvpp5+qb9++atq0qSZNmuT2qbOmTZvqk08+KdYGAQAAgDN5HWATExN17733aubMmXrwwQfdliUkJOj3338vtuYAAACAs3kdYNevX6+77rrL47KIiAilpqaed1MAAABAfrwOsGXKlHH7FoYz7dmzR+XKlTvvpgAAAID8eB1g27Rpk+fc11xJSUlq165dcfQFAAAAeOT1dWBHjBihq666Si1btlSvXr1kWZZmzJihkSNHasGCBfrtt99Kok8AAABAUhGOwDZv3lzffPONjh49qqFDh8oYo5deekmbNm3S119/rfr165dEnwAAAICkIhyBlaRrr71W69ev15YtW/Tnn38qKipKderUKe7eAAAAgDyKFGBz1axZUzVr1iyuXgAAAIBzKtI3cW3fvl39+/dXnTp1FBkZqTp16qh///7atm1bcfcHAAAAuPE6wK5cuVJNmjRRUlKSKleurI4dO6py5cpKSkpSkyZNtHLlyhJoEwAAADjN61MIBg8erOjoaH3//feqUqWKq75jxw5df/31evzxxzVv3rxibRIAAADI5fUR2N9++02jR492C6+SVLVqVY0aNUpLliwptuYAAACAs3kdYMPCwhQWFuZxWXh4uEJDQ8+7KQAAACA/XgfYXr166d133/W4bMqUKerZs+d5NwUAAADkp1DnwM6YMcP1/82aNdNnn32mli1bqmfPnqpYsaL279+vjz/+WAcOHNAdd9xRYs0CAAAAhQqwt99+uyzLkjHG9d9du3Zp2bJlecbefffd6tWrV7E3CgAAAEiFDLBcVQAAAAAXi0IF2LZt25Z0HwAAAEChFOmbuAAAAABf8fqLDCTpv//9r/7zn/9ox44dOnnypNsyy7K0atWqYmkOAAAAOJvXAXb8+PF66qmnFB0drVq1aik4OLgk+gIAAAA88jrAvv3227rvvvv0z3/+Uw6HoyR6AgAAAPLl9Tmwqamp6tWrF+EVAAAAPuF1gG3Tpo3Wr19fEr0AAAAA5+T1KQQTJ07ULbfcori4ON1www0KCAgoib4AAAAAj7wOsLVq1VKHDh10yy23yLIslSlTxm25ZVlKT08vtgYBAACAM3kdYIcNG6ZJkyapcePGSkhI4AgsAAAALiivA2xSUpKeeuopJSYmlkQ/AAAAQIG8/hBXTk6Orr/++pLoBQAAADgnrwNsx44dtXjx4pLoBQAAADgnr08heP7559WjRw8FBwerS5cuioiIyDPGUw0AAAAoDl4H2EaNGkmShgwZoiFDhngck5OTc35dAQAAAPnwOsCOGDFClmWVRC8AAADAOXkdYEeNGlUCbQAAAACF4/WHuAAAAABf8voI7JgxYwpcblmWnn/++SI3BAAAABSk2E8hIMACAACgJHl9CoHT6czzLyUlRe+++67q16+v7du3l0CbAAAAwGnFcg5sRESE7rvvPvXq1UsDBw4sjlUCAAAAHhXrh7hatmypH374oThXCQAAALgp1gC7atUqlS1btjhXCQAAALjx+kNc77//fp5aZmamVq9erffee09///vfi6UxAAAAwBOvA2zfvn091kuXLq2///3vevXVV8+3JwAAACBfXgfYbdu25amVLl1aFSpUKJaGAAAAgIJ4HWCrVq1aEn0AAAAAhcJXyQIAAMBWCnUEtmHDhoVeoWVZWrVqVZEbAgAAAApSqAAbEREhy7IKHHP06FEtX778nOMAAACA81GoADt//vx8l2VnZ2vy5MkaM2aMLMtSr169iqs3AAAAII/zOgf2008/Vb169fTYY4+pUaNGWr58uT744IPi6g0AAADIo0gBdv78+briiivUo0cPhYaG6rvvvtO3336rxo0bF3N7AAAAgDuvAuyaNWt04403qn379kpNTdVHH32kZcuWqX379iXVHwAAAOCmUAF2165d6tOnj5o2barly5dr4sSJWr9+ve66666S7g8AAABwU6gPcdWpU0dZWVm64YYbNGzYMIWEhGjNmjX5jm/atGmxNQgAAACcqVABNjMzU5L0zTffaM6cOfmOM8bIsizl5OQUT3cAAADAWQoVYKdOnVrSfQAAAACFUqgA26dPn5LuAwAAACiU87oOLAAAAHChEWABAABgKwRYAAAA2AoBFgAAALZiuwCbmJgoy7I0ePBgX7cCAAAAH7BVgF26dKkmT56shg0b+roVAAAA+IhtAuzRo0fVu3dvTZkyReXKlfN1OwAAAPCRQl0H9mLwyCOPqEuXLurQoYNeeOGFAsdmZma6vj1MkjIyMiRJ2dnZys7OliT5+fnJz89PTqdTTqfTNTa3npOTI2PMOesOh0OWZbnW6/K/MZZxupctP891P4dkjHvdsk6Pz7fulHVGL8aypALqlnG6+nL1Yln5153u36iWb+8X0ZycTqdX28nhcEhSnm+Py6/u7+8vY4xb3bIsORyOPPtSfvWS3veYk5dzMk6eTz6YU3Z2donte5Yzh+3kgzllZ2dfmq8RzOmCzSlPliqALQLstGnTtGLFCi1durRQ4xMTEzV69Og89eTkZAUHB0uSoqOjVbNmTW3btk0HDx50jYmNjVVsbKw2bdqk9PR0V71GjRoqX7681q5dqxMnTrjq8fHxCg8PV3JystsG8XfEKcfPX5VTNrr1sCeqrhzObFU8tMVVM35+2hMVr9Knjinq8E5XPds/UPsjair45GGVO7LPVT8ZEKyU8KoKPZ6q0GN/9X4sKFxpIZVU7uh+BZ847KpnBEcrIzhakem7VDrrmKueFhKjY0HlVCFtm/yz/wr8KeFVdDKgrCod+kPWGTvw/oiaF/2cUlIsr7ZTw4YNFRAQoGXLlrnNqXnz5srKytLq1atdNYfDoRYtWig9PV0bNmxw1YOCgtSoUSOlpKRo69atrnpYWJgSEhK0d+9e7d6921Uv6X2POXk3p8gTpXg++WBOyclBJbbvVU7PYjv5YE7LlgVckq8RzOnCzSk5OVmFZZkzI/NFaNeuXWrevLm+++47NWrUSJLUrl07NW7cWBMnTvR4G09HYOPi4pSamqrQ0FBJJf8u49XVaZJ4136h5/Rkk2je4TInr+b02upDPJ98MKehjSJLbN97bVUq28kHcxraKPKSfI1gThduTmlpaYqMjFR6erorr+Xnoj8Cu3z5ch04cEDNmjVz1XJycrRgwQJNmjRJmZmZronnCgwMVGBgYJ51+fv7y9/ffcq5D/7Zzl7nuepnr1eWJUkylufxHuuW5WXdT8bysPJ86qdfzLyo+3nRe371Czyn3G1Z6O1UhLplWR7r+e1L3tbPe98rQv1ynlPuL22eTxd2TrnbpiT2vTP7YjtduDmduR0vpdeIotaZU/HMKT8XfYBt37691qxZ41a79957FR8fr6eeeirfBw0AAACXpos+wIaEhKh+/fputeDgYEVGRuapAwAA4NJnm8toAQAAAJINjsB6Mn/+fF+3AAAAAB/hCCwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYu+gCbmJioFi1aKCQkROXLl9fNN9+sjRs3+rotAAAA+MhFH2B/+uknPfLII1q8eLHmzp2r7OxsdezYUceOHfN1awAAAPABf183cC5z5sxx+3nq1KkqX768li9frmuuucbjbTIzM5WZmen6OSMjQ5KUnZ2t7OxsSZKfn5/8/PzkdDrldDpdY3PrOTk5Msacs+5wOGRZlmu9Lv8bYxmne9ny81z3c0jGuNct6/T4fOtOWWf0YixL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cMMNrtfTw4cPq0qVKnr22Wddt585c6aaN2+u0qVLKyoqSrfeeqtrWVZWloYNG6bKlSsrODhYV1xxhev5VlhTp05VQkKCSpcurfj4eL399tuuZbnP6xkzZujaa69VmTJl1KhRIy1atEjS6ef0vffeq/T0dFmWJcuyNGrUqKI/WBc7g8vG4cOHzZgxY0xsbKzZt2+fOXDggPnss8/M559/bjZt2mSSk5NN165dTYMGDUxOTo4xxpht27YZSSY5OdkYY8y8efOMJJOWlua7iVzG2rZta8qWLWsGDRpkNmzYYD788ENTpkwZM3nyZGOMMf/617/M119/bbZs2WIWLVpkWrVqZTp37uy6/SOPPGIaN25sli5darZt22bmzp1rZs6caYwxZvz48SYuLs4sWLDAbN++3fz888/mo48+8sk87axt27YmJCTEjB071mzatMmMHTvW+Pn5mc6dO5vJkyebTZs2mYcffthERkaaY8eOmb1795qoqCjz9NNPm/Xr15sVK1aY66+/3lx77bWudT788MMmNjbWfPfdd2b16tXmpptucu0HuapWrWomTJhgjMn7vDXGmLS0NCPJzJs3zxjz13O5VatW5pdffjErVqwwtWrVMm3btjUdO3Y0K1asMAsWLDCRkZFm3LhxF+CRu3Tcf//9pmrVqub77783a9asMbfccosJCQlxba9u3bqZhIQEs2DBArNy5UrTqVMnU6tWLZOVlWWMMWbZsmXGz8/PjBkzxmzcuNFMnTrVBAUFmalTp7ruo3PnzqZ+/fpm4cKFZtmyZebKK680QUFBrn0Anj3zzDMmPj7ezJkzx2zZssVMnTrVBAYGmvnz55vdu3ebcuXKmYkTJxpjjOnRo4dp3ry5a7t89dVXxuFwmBEjRpjff//drFy50rz44ouudffq1ctceeWVZsGCBWbz5s1m/PjxJjAw0GzatMkYY8zUqVNNWFiYa/zIkSNNo0aNXD9PnjzZxMTEmM8//9xs3brVfP755yYiIsIkJSUZY/56XsfHx5uvvvrKbNy40dx+++2matWq5tSpUyYzM9NMnDjRhIaGmn379pl9+/aZI0eOlPAj6jsE2MvMhAkTTNWqVfNdfuDAASPJrFmzxhhDgL3YtG3b1iQkJBin0+mqPfXUUyYhIcHj+N9++81Icr2Ide3a1dx7770exz722GPmuuuuc1s3vNe2bVtz1VVXuX7Ozs42wcHB5u6773bV9u3bZySZRYsWmeeff9507NjRbR27du0ykszGjRvNkSNHTEBAgJk2bZpreWpqqgkKCiqWAPv999+7xiQmJhpJZsuWLa5a//79TadOnc7nIbmsZGRkmFKlSplPP/3UVTt8+LApU6aMGTRokNm0aZORZH799VfX8pSUFBMUFGQ++eQTY8zpIHT99de7rffJJ5809erVM8YYs3HjRiPJLF682LV8/fr1RhIBtgBHjx41pUuXNgsXLnSr9+vXz/Ts2dMYY8wnn3xiAgMDzdNPP23KlCljNm7c6BrXunVr07t3b4/r3rx5s7Esy+zZs8et3r59e/P0008bY84dYOPi4vIcNBg7dqxp3bq1Meav5/W7777rWr5u3Tojyaxfv97jfVzKOIXgMrdlyxb16tVLNWrUUGhoqKpXry5J2rlzp487Q35atWoly7JcP7du3Vp//PGHcnJylJycrO7du6tq1aoKCQlRu3btJP21PR9++GFNmzZNjRs31rBhw7Rw4ULXevr27auVK1eqbt26GjhwoL777rsLOq9LScOGDV3/73A4FBkZqQYNGrhqFSpUkHT6z8DLly/XvHnzVLZsWde/+Ph4Saefn1u2bFFWVpZat27tun1ERITq1q1b7L1WqFBBZcqUUY0aNdxqZ56GgoJt3bpVp06dUsuWLV21sLAw1/Zav369/P39dcUVV7iWR0ZGqm7dulq/fr1rTJs2bdzW26ZNG9fzPHcdzZs3dy2Pj493+4Q78vr999918uRJXX/99W7Pt/fff9916twdd9yhW2+9VYmJiXrttddUp04d1+1Xrlyp9u3be1z3ihUrZIxRnTp13Nb9008/uZ2Wl5+DBw9q165d6tevn9vtX3jhhTy3P/M5GxMTI0mX5XOUD3Fd5rp27aq4uDhNmTJFlSpVktPpVP369ZWVleXr1uClkydPqmPHjurYsaM+/PBDRUdHa+fOnerUqZNre3bu3Fk7duzQ7Nmz9f3336t9+/Z65JFH9Oqrr6pp06batm2bvvnmG33//fe688471aFDB3322Wc+npn9lCpVyu1ny7LcarlvQJxOp5xOp7p27aqXX345z3piYmLynBtZGH5+p49NmDO+KfzUqVPn7PXsPnNrTqfT6x4uV7mP+ZlvMs+sm3y+vd0Y47rNmf9/9u0Lug8ULHc/nj17tipXruy2LDAwUJJ0/PhxLV++XA6HI89zLygoqMB1OxwO123PVLZs2UL3NmXKFLc3N5LyrC+/15LLDUdgL2Opqalav369nnvuObVv314JCQlKS0vzdVs4h8WLF+f5uXbt2tqwYYNSUlI0btw4XX311YqPj/f4rjw6Olp9+/bVhx9+qIkTJ2ry5MmuZaGhoerRo4emTJmi6dOn6/PPP9ehQ4dKfE6Xs6ZNm2rdunWqVq2aatWq5fYvODhYtWrVUqlSpdy2e1pamjZt2pTvOnOvSLBv3z5XjQ9iXhg1a9ZUqVKl9Ntvv7lqGRkZrjBUr149ZWdna8mSJa7lqamp2rRpkxISElxjfvnlF7f1Lly4UHXq1JHD4VBCQoKys7O1bNky1/KNGzdeFpdOOh/16tVTYGCgdu7cmee5FhcXJ0kaOnSo/Pz89M033+jNN9/Ujz/+6Lp9w4YN9cMPP3hcd5MmTZSTk6MDBw7kWXdhruRToUIFVa5cWVu3bs1z+9y/jBZGQECAcnJyCj3ezjgCexkrV66cIiMjNXnyZMXExGjnzp0aPny4r9vCOezatUtDhgxR//79tWLFCr311lt67bXXVKVKFQUEBOitt97SQw89pLVr12rs2LFutx0xYoSaNWumv/3tb8rMzNRXX33l+qU5YcIExcTEqHHjxvLz89Onn36qihUr8mfJEvbII49oypQp6tmzp5588klFRUVp8+bNmjZtmqZMmaKyZcuqX79+evLJJxUZGakKFSro2WefdR1l9SQoKEitWrXSuHHjVK1aNaWkpOi55567gLO6fIWEhKhPnz568sknFRERofLly2vkyJHy8/OTZVmqXbu2unfvrgceeED//Oc/FRISouHDh6ty5crq3r27pNMhqkWLFho7dqx69OihRYsWadKkSa5PpNetW1c33HCDHnjgAU2ePFn+/v4aPHhwgUcIcXrbPPHEE3r88cfldDp11VVXKSMjQwsXLlTZsmUVFRWl9957T4sWLVLTpk01fPhw9enTR6tXr1a5cuU0cuRItW/fXjVr1tRdd92l7OxsffPNNxo2bJjq1Kmj3r1765577tFrr72mJk2aKCUlRT/++KMaNGigG2+88Zz9jRo1SgMHDlRoaKg6d+6szMxMLVu2TGlpaRoyZEih5litWjUdPXpUP/zwgxo1aqQyZcqoTJky5/vQXZQ4AnsZ8/Pz07Rp07R8+XLVr19fjz/+uMaPH+/rtnAO99xzj06cOKGWLVvqkUce0WOPPaYHH3xQ0dHRSkpK0qeffqp69epp3LhxevXVV91uGxAQoKeffloNGzbUNddcI4fDoWnTpkk6/Weul19+Wc2bN1eLFi20fft2ff311wUGJZy/SpUq6ddff1VOTo46deqk+vXra9CgQQoLC3M99uPHj9c111yjbt26qUOHDrrqqqvUrFmzAtf73nvv6dSpU2revLkGDRqkF1544UJMB5Jef/11tW7dWjfddJM6dOigNm3auC6NJJ2+VFKzZs100003qXXr1jLG6Ouvv3b9abhp06b65JNPNG3aNNWvX18jRozQmDFj1LdvX9d9TJ06VXFxcWrbtq1uvfVWPfjggypfvrwvpmsrY8eO1YgRI5SYmKiEhAR16tRJs2bNUrVq1dSvXz+NGjVKTZs2lSSNHDlSlSpV0kMPPSTp9CXyPv30U82cOVONGzfWdddd53YkferUqbrnnns0dOhQ1a1bV926ddOSJUtcR3fP5f7779e7776rpKQkNWjQQG3btlVSUpJXR2CvvPJKPfTQQ+rRo4eio6P1yiuvePHo2Itl8jshB8BFp127dmrcuDFfFwnYyLFjx1S5cmW99tpr6tevn6/bAS4JnEIAAEAxSk5O1oYNG9SyZUulp6drzJgxkuQ6RQDA+SPAAgBQzF599VVt3LhRAQEBatasmX7++WdFRUX5ui3gksEpBAAAALAVPp0BAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAArhsLVmyRLfccouqVKmiwMBAVahQQa1bt9bQoUN93RoAoABcRgvAZWn27Nnq1q2b2rVrpwceeEAxMTHat2+fli1bpmnTpmn37t2+bhEAkA8CLIDLUtu2bbVnzx5t2LBB/v7u3+nidDrl53fh/kB1/PhxlSlTxjbrBQBf4xQCAJel1NRURUVF5QmvkjyG148++kitW7dW2bJlVbZsWTVu3Fj/+te/3Ma89957atSokUqXLq2IiAjdcsstWr9+vduYvn37qmzZslqzZo06duyokJAQtW/fXpKUlZWlF154QfHx8QoMDFR0dLTuvfdeHTx48JzzKWi9c+fOVffu3RUbG6vSpUurVq1a6t+/v1JSUtzWMWrUKFmWpXXr1qlnz54KCwtThQoVdN999yk9Pd1t7OHDh9WvXz9FRESobNmy6tKli7Zu3SrLsjRq1Ci3sX/88Yd69eql8uXLKzAwUAkJCfq///u/c84JAPJDgAVwWWrdurWWLFmigQMHasmSJTp16lS+Y0eMGKHevXurUqVKSkpK0hdffKE+ffpox44drjGJiYnq16+f/va3v2nGjBl64403tHr1arVu3Vp//PGH2/qysrLUrVs3XXfddfryyy81evRoOZ1Ode/eXePGjVOvXr00e/ZsjRs3TnPnzlW7du104sSJc87J03olacuWLWrdurXeeecdfffddxoxYoSWLFmiq666yuO8b7vtNtWpU0eff/65hg8fro8++kiPP/64a7nT6VTXrl310Ucf6amnntIXX3yhK664QjfccEOedf3+++9q0aKF1q5dq9dee01fffWVunTpooEDB7r6AwCvGQC4DKWkpJirrrrKSDKSTKlSpcyVV15pEhMTzZEjR1zjtm7dahwOh+ndu3e+60pLSzNBQUHmxhtvdKvv3LnTBAYGml69erlqffr0MZLMe++95zb2448/NpLM559/7lZfunSpkWTefvvtAueT33rP5nQ6zalTp8yOHTuMJPPll1+6lo0cOdJIMq+88orbbQYMGGBKly5tnE6nMcaY2bNnG0nmnXfecRuXmJhoJJmRI0e6ap06dTKxsbEmPT3dbeyjjz5qSpcubQ4dOlRgvwDgCUdgAVyWIiMj9fPPP2vp0qUaN26cunfvrk2bNunpp59WgwYNXH9enzt3rnJycvTII4/ku65FixbpxIkT6tu3r1s9Li5O1113nX744Yc8t7ntttvcfv7qq68UHh6url27Kjs72/WvcePGqlixoubPn1+oeZ29Xkk6cOCAHnroIcXFxcnf31+lSpVS1apVJSnPKQ6S1K1bN7efGzZsqJMnT+rAgQOSpJ9++kmSdOedd7qN69mzp9vPJ0+e1A8//KBbbrlFZcqUcZvXjTfeqJMnT2rx4sWFmhcAnCnvyV8AcBlp3ry5mjdvLkk6deqUnnrqKU2YMEGvvPKKXnnlFdf5p7GxsfmuIzU1VZIUExOTZ1mlSpU0d+5ct1qZMmUUGhrqVvvzzz91+PBhBQQEeLyPs89X9cTTep1Opzp27Ki9e/fq+eefV4MGDRQcHCyn06lWrVp5PDUhMjLS7efAwEBJco1NTU2Vv7+/IiIi3MZVqFDB7efU1FRlZ2frrbfe0ltvvVXkeQHA2QiwAPA/pUqV0siRIzVhwgStXbtWkhQdHS1J2r17t+Li4jzeLjfw7du3L8+yvXv3Kioqyq1mWVaecVFRUYqMjNScOXM83kdISMg5+/e03rVr12rVqlVKSkpSnz59XPXNmzefc335iYyMVHZ2tg4dOuQWYvfv3+82rly5cnI4HLr77rvzPYJdvXr1IvcB4PJFgAVwWdq3b5/HI6a5f1KvVKmSJKljx45yOBx655131Lp1a4/rat26tYKCgvThhx/qjjvucNV3796tH3/8Ubfffvs5+7nppps0bdo05eTk6IorrijKlDzKDbW5R1Fz/fOf/yzyOtu2batXXnlF06dP18MPP+yqT5s2zW1cmTJldO211yo5OVkNGzbM9+gyAHiLAAvgstSpUyfFxsaqa9euio+Pl9Pp1MqVK/Xaa6+pbNmyGjRokCSpWrVqeuaZZzR27FidOHHCdXmp33//XSkpKRo9erTCw8P1/PPP65lnntE999yjnj17KjU1VaNHj1bp0qU1cuTIc/Zz11136T//+Y9uvPFGDRo0SC1btlSpUqW0e/duzZs3T927d9ctt9zi9Tzj4+NVs2ZNDR8+XMYYRUREaNasWXlOa/DGDTfcoDZt2mjo0KHKyMhQs2bNtGjRIr3//vuS3C9D9sYbb+iqq67S1VdfrYcffljVqlXTkSNHtHnzZs2aNUs//vhjkfsAcPkiwAK4LD333HP68ssvNWHCBO3bt0+ZmZmKiYlRhw4d9PTTTyshIcE1dsyYMapdu7beeust9e7dW/7+/qpdu7YGDhzoGvP000+rfPnyevPNNzV9+nQFBQWpXbt2eumll1S7du1z9uNwODRz5ky98cYb+uCDD5SYmCh/f3/Fxsaqbdu2atCgQZHmWapUKc2aNUuDBg1S//795e/vrw4dOuj7779XlSpVirROPz8/zZo1S0OHDtW4ceOUlZWlNm3a6MMPP1SrVq0UHh7uGluvXj2tWLFCY8eO1XPPPacDBw4oPDxctWvX1o033lik+wcAvokLAFAsPvroI/Xu3Vu//vqrrrzySl+3A+ASRoAFAHjt448/1p49e9SgQQP5+flp8eLFGj9+vJo0aeK6zBYAlBROIQAAeC0kJETTpk3TCy+8oGPHjikmJkZ9+/bVCy+84OvWAFwGOAILAAAAW+GbuAAAAGArBFgAAADYCgEWAAAAtkKABQAAgK0QYAEAAGArBFgAAADYCgEWAAAAtkKABQAAgK38P2kGlJcVsbWYAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "及格率：60.00%\n",
      "平均分：60.63\n",
      "\n",
      "单题得分分析：\n",
      "选择题1 - 平均分: 1.13, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题2 - 平均分: 1.27, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题3 - 平均分: 0.93, 最高分: 2, 最低分: 0, 类型: 选择题（较难）\n",
      "选择题4 - 平均分: 1.47, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题5 - 平均分: 1.07, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题6 - 平均分: 1.33, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题7 - 平均分: 1.33, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题8 - 平均分: 1.07, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题9 - 平均分: 1.47, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题10 - 平均分: 1.13, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "简答题1 - 平均分: 5.63, 最高分: 9, 最低分: 0, 类型: 简答题（较易）\n",
      "简答题2 - 平均分: 5.50, 最高分: 10, 最低分: 0, 类型: 简答题（较易）\n",
      "简答题3 - 平均分: 5.40, 最高分: 9, 最低分: 1, 类型: 简答题（较易）\n",
      "简答题4 - 平均分: 6.73, 最高分: 10, 最低分: 2, 类型: 简答题（较易）\n",
      "简答题5 - 平均分: 6.13, 最高分: 10, 最低分: 0, 类型: 简答题（较易）\n",
      "编程题1 - 平均分: 9.23, 最高分: 15, 最低分: 0, 类型: 其他题（较难）\n",
      "编程题2 - 平均分: 9.80, 最高分: 15, 最低分: 1, 类型: 其他题（较难）\n",
      "选择题总分 - 平均分: 12.20, 最高分: 20, 最低分: 2, 类型: 其他题（较易）\n",
      "简答题总分 - 平均分: 29.40, 最高分: 46, 最低分: 10, 类型: 其他题（较易）\n",
      "编程题总分 - 平均分: 19.03, 最高分: 29, 最低分: 5, 类型: 其他题（较易）\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwsAAAH5CAYAAADOY6KBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACGeUlEQVR4nO3dd3hUddrG8e+k905IQiD03ntRAUUBlWLFsijYFRFXXV/riusqunbXtStYwV5RUJFiAQQRQZr0HlIgvc7Mef8YEwmZ9MmcSeb+XFcuyMyZc55pJ3PPr1kMwzAQERERERE5gY/ZBYiIiIiIiGdSWBAREREREacUFkRERERExCmFBRERERERcUphQUREREREnFJYEBERERERpxQWRERERETEKYUFERERERFxSmFBREREREScatSw0LZtW9q2bduYh6iVadOmYbFY2LNnj9mlNLpt27YxadIkWrZsicVi8YjHX6Qmo0aNwmKxVLhs3rx5WCwW5s2bZ0pNFouFUaNGVbjM7HPJsmXLsFgszJ4925TjO3Po0CH+9re/0apVK3x8fCo9j82ds9eumMfs84a3M/P90BSe+z179mCxWJg2bZrZpdRJncJC2Z08/icgIIDWrVtzySWXsGHDhsaqs0lz1wvYZrNxzjnnsHjxYiZOnMh9993HzTff3KjHFPFUnvJlRV05CymebNq0abzzzjuMHj2ae++9l/vuu8/skqQZa2oftsz+gqG5aWrnx+bCrz436tChA3/7298AyMvLY9WqVcyfP5+PPvqI7777juHDhwOwZMkS11UqNdq9ezdbtmzh2muv5YUXXjC7HJEGOeeccxg6dCiJiYmmHH/Lli2EhISYcuyqDB48mC1bthAXF2d2KQCUlJSwZMkSzjjjDN566y2zyzHFG2+8QUFBgdllyJ/MPm94O70fmqd6hYWOHTtWaga/5557ePDBB7n77rtZunQp4AgV4j6HDh0CICEhweRKRBouMjKSyMhI047ftWtX045dlZCQEI+qKzU1Fbvd7tXnnDZt2phdghzH7POGt9P7oXly2ZiFmTNnArBmzZryy6rqBmAYBq+99hojRowgIiKCkJAQBg4cyGuvvVbn43722WeMHTuW2NhYgoKCaNu2LVOnTuX33393uv1zzz1Ht27dCAoKIiUlhfvvvx+73V5hm+zsbB555BFGjhxJUlIS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Vau48MILCQoK4qOPPuL2229nx44dvPjii7Xax4natm3Lfffdx/33309KSkqFD8k1vY/r89ooLS3ljDPO4OjRo5x77rkUFBSwYMECLrzwQhYtWsQZZ5xR7TGnTZtG3759efrpp+nTpw+TJ08G/nqM63L+Ot7MmTNZtWoVZ511FmeffXb569WZc889l+uvv563336be++9t9L1ZV2jpk6dWn7ZI488wo4dOxg6dCjnnHMOWVlZLFq0iGuvvZZt27bx+OOPV9pPZmYmw4YNIyYmhilTplBSUlL+HnbGMAymTJnCRx99ROfOnZkxYwb5+fm89957nH322Tz99NPcdNNNVd6+Jp7yfqxJXc7/zz//PDfccAOJiYmcc845xMbGcvjwYX7++Wc++eQTJk+eTN++fZk1a1al1xxQ4/ikDz/8kIsuuoiAgIDyUP3tt99y//338/XXX7N06VICAwMr3CYrK6v8S81LL72UtLQ03n33XcaOHcsvv/xS6TPGiW6++WbmzZvHb7/9xqxZs4iKiiqvNTw8nIsvvpiXX36Zn376qbz7dpmFCxdy+PBhbr311kp/Ix9//HGWLVvGlClTOPvss/nyyy95+OGH+fXXX/nqq68qfB5z93m+Op9//jlffPEFEyZM4Prrr2fFihW88cYb7Ny5kx9++KHa29bl/FiX49Tl8anOypUrGT9+PDk5OYwdO5aLLrqIY8eO8euvv/L000/XOMbm5Zdf5vPPP+eUU07hzDPPpKCggGXLlnHnnXeyZs0aPvzww/JtDx06xODBg8nPz+ess85iypQp5OXlsX37dv773/+Wn8Pq8lmkRkYd7N692wCMsWPHVrru7rvvNgBj1KhR5ZelpKQYKSkpFbZ76aWXDMC48sorjdLS0vLLi4uLjQkTJhiAsXbt2hprWbhwoQEYvXr1MjIyMipcV1paaqSmppb/fvnllxuA0a5dO+PQoUPll6enpxtRUVFGeHi4UVxcXH55VlaWkZmZWemY3333neHj42NcddVVFS6/7777DMAIDQ01NmzYUOl2c+fONQBj7ty5Nd6v411xxRUGYNx5550VLl+0aJEBGJ06dTJsNlv55UuXLjUA47777qv1MQ4cOFDhvpe5//77DcB46623yi/LyckxgoODje7du1fa/oMPPjAA45577im/bNOmTYafn5/Rr1+/So/nnDlzDMB47LHHKtUPGK+++qrTenft2lXpskOHDhlJSUlGp06dKlz+7bffGoAxcOBAo6CgoPzyw4cPGwkJCQZgXH755RVuM3z4cMPPz8/4+uuvK1y+bds2Izw83OjVq5fTuo732WefGYDx97//vdJ1OTk5FR7vf/zjHwZgTJ061bBarRW2zcrKMnJzcw3DMAybzWZ06tTJAIxFixZV2O7OO+8sf08dLyUlxQCMM844o8L9NwzDyMjIMCIiIozk5GRj7969Fa575513DMC48cYbyy8799xzDcD47bffKt2nE99/zthsNqN9+/aGxWIxvv/++/LL7Xa7cckll5Q/78dz9r655ZZbDMD49NNPa6zD2fmnTG1ea4AxcuTICpeVnUtatmxpHDx4sPzy3Nxco1evXgZgrFixotr7cGINJ75fnR23uts05LUxadKkCq/HsveMs3O8M2V/E058HxlG3c9fZY+ts9dkdS699FIDMH7++ecKl5eUlBixsbFG69atDbvdXn65s3NIaWmpcfrppxu+vr6Vjl32Opk+fXql96hhGMbIkSMrvXbfeOON8ufx+Md3//79Rnx8vOHv71+hjrK/IUuXLq20f2evITPej2XPz+7duyvtz1n9dT3/9+/f3wgICDDS0tKqvU/VveYMw/njlZOTY0RFRRmBgYEVHrPj7+8DDzxQYT9lj8ENN9xQ4XX6yiuvGIBx7bXXOj3+iap73NasWVP+2jrRxIkTDcDYsmVL+WVlj3NQUJDx+++/l19e9voFjDfeeKP8cnef5w3D+fuh7Dnx8/Mzfvjhh/LLrVarMWrUKAMwVq5cWav9V3d+rOtx6vr4VKWoqMho3bq14ePjY3z11VeVrt+/f3/5/6t6/e7Zs6fS+cVut5efR4+/P88884wBGE8//XSlY6Wnp5f/vy6fRWpSr25IO3bsYPbs2cyePZvbbruNk046iQcffJCgoCAeeuiham/77LPPEhoayrPPPouf318NGwEBAeXf7s+fP7/GGv73v/8B8PTTT1f6xszPz8/pt1H33ntvhUFPcXFxTJo0idzcXLZt21Z+eWRkJDExMZVuP3r0aHr06MG3337rtKZrrrmGXr161Vh7bZSUlDB//nxiY2O55557Klw3duxYxo4dy/bt2/npp58adJxWrVpV+tYC4MYbbwSocF/Dw8OZOHEimzdv5tdff62wfdk3eGUD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O7fC+c4wjPLnqKapLeurNn//+/fvz4ABA3jrrbf48MMPGTBgQHnAcebNN9+scD+sVit33XUX8NdrD9x/nneHup4fq1PXx6cqEydOJDk5mbfeeovFixdXur6mFoeqzkubNm2qdP4ER0uEs9alE/8O1vazSG24tRsSOBL0qlWreP311/nxxx8ZM2YMSUlJHDlyhK1bt7J69WreeeedGudMPvPMM7ntttt47LHH6NSpE+ecc055f70lS5Zw2223VZhfvS5mzpzJzJkz6devH+effz5Wq5VvvvkGwzDo06dP+eCw2ho2bBjBwcE89dRT5OTklH8DX90HcqB8rYN///vf/PTTTwwZMqR8nvKQkBDmzp3boC5YZbMIffjhhwwcOJDTTjuNI0eO8MUXX3Dqqaeya9euKm87depU7rnnHh577DEiIiKcflPXs2dPnnvuOa6//nq6dOnCmWeeSYcOHcjJyWHXrl0sX76cadOm8cILL9Sq3uuuu465c+dy7rnnMmXKFGJjY1m1ahXr1q3jrLPOqjTOYMyYMVx66aW8/fbb9OrVi0mTJlFcXMx7773HkCFD+Pzzzys9fvPnz2f06NFcdNFFPPXUUwwYMICgoCD27dvHypUrSU9Pr/HD57fffsutt97KiBEj6Nq1K7GxsezatYvPPvuM4ODgCl2c/vWvf7Fq1SrefPNNVq1axfjx4wkMDGTXrl0sWrSIH374gb59++Lj48O8efMYO3YsZ555JhdccAEpKSmsXr2a7777jg4dOjidNKAqZTORXHDBBfTp04dx48bRtWtXioqK2Lt3L8uXL2f48OHlY5NuvfVW9u3bx6hRo2jbti0Wi4UffviBn3/+meHDh9f4oc/Hx4eXXnqJM888kzFjxpQ3lX733XccPnyY3r17s2HDhhrrfvzxx/nmm28YPXo07du3JygoiHXr1rFkyRI6duzIOeecU77tqaeeytq1a5kwYQInn3wyAQEBnHTSSQ2aEKDMoEGD6NOnD1OmTCEwMJCPPvqIPXv2cPXVV3PKKaeUb9eqVSumTJnCggULGDBgAOPGjSMtLY2PP/6YcePGVZg7+/i633vvPc4//3z69euHr68vZ511VpWTR7j6teEqjX3+OtGll17KXXfdxezZs6v8AmPChAm0bduW//znP/z+++/07NmTbdu28cUXXzB58mSnz0d9TJ06lY8++ohPP/2U3r17c/bZZ5evs5CZmcnjjz9O+/bty7cfOnRo+XicYcOGccopp7B3714+++wzJkyYwMcff1xh/2a8HydPnky7du2YN28e+/fvp1+/fmzZsoXvvvuOM888s7w/dJm6nv+nTJlCSEgIJ510EikpKZSWlvLNN9+wefNmpkyZUj6JQVhYGIMGDWLFihVMnz6dTp064ePjwyWXXFLlRAcRERG8/PLLXHzxxQwZMoQpU6bQokULlixZwtq1axk8eDD/+Mc/avfk1tGpp57KY489xrXXXssFF1xAaGgobdq04ZJLLqmw3bXXXls+ZqGm9QzGjBnD0KFDueiii4iJieHLL7/k999/Z+zYsRVmJHT3ed4d6np+rE5dH5+qBAYG8t577zFu3DjGjx/PuHHj6NOnDzk5Oaxfv56CgoJqvxgdPHgwgwcP5r333uPw4cMMHTqUffv28dlnn3HWWWdVWijz7bff5rnnnmPUqFF07NiRiIgINm/ezJdffklcXFz5DH91+SxSo1pPsmpUv86CM9XNc/7uu+8aY8aMMaKjow1/f3+jVatWxqhRo4zHH3+8wjyxNfnwww+N0aNHG5GRkUZgYKDRtm1bY+rUqRXmIK7r/NB2u9144YUXjB49ehhBQUFGQkKCceWVVxpHjhxxOodwdXNkl1m4cKExaNAgIzg42Okc1lVJT083brrpJiMlJcXw9/c34uLijPPPP9/YuHFjpW3rs85Cbm6uceuttxpt27Y1AgMDjU6dOhkPPPCAUVJSUu18xnv27DEsFkuVc0Qf7+effzYuuugiIykpqfw+9O/f37jjjjsqzCFdm/qXLl1qjBgxwggPDzeioqKMM8880/jll1+qfA5KS0uNBx54wGjXrp0REBBgtG/f3njooYeM1atXG4Axa9asSsc4evSocc899xg9e/Y0goODjbCwMKNTp07GJZdcYnz00UfV3lfDMIzNmzcbs2bNMvr162fExsYagYGBRvv27Y1p06YZmzdvrrR9UVGR8dhjjxl9+/YtP1737t2NW2+91Th27FiFbTds2GCcf/75RlxcnOHv72+kpKQYN910k9P3THXvvzJbt241rrzySiMlJcUICAgwoqOjjV69ehk33XRThXnrFyxYYFx44YVGhw4djJCQECMyMtLo27ev8Z///MfIy8ur8TEps2LFCuOUU04xgoODjZiYGOOCCy4w9u7dW+3c3MfPl75o0SLjsssuM7p06WKEh4eXP1b33HNPpXnAc3NzjauvvtpITEw0fHx8Kry2avNac/b6LzuX7Nixw3jooYeM9u3bGwEBAUaHDh2MRx55xOk8/Pn5+cbMmTONli1bGoGBgUbv3r2Nt99+u8oaDh8+bFx44YVGXFxced1lj0F1dbvqteHsuahKTXPe1+X8Vd15urZGjx5tAEZYWJiRn5/vdJtdu3YZ5513ntGiRQsjJCTEGDRokLFgwYJ6rXthGFU/XqWlpcZjjz1m9OrVywgMDDTCw8ONkSNHOl0jxDAcj9XUqVONmJgYIzg42Bg6dKixePFip+8DM96PhuF47CZNmmSEh4cboaGhxmmnnWasWbOm2r+BtT3/P/fcc8bEiRONlJQUIygoyIiNjTWGDBlivPjiixXWZDIMx7o3Z555phEVFVX+d6js2NWtbbJixQpj/PjxRlRUlBEQEGB07tzZuPfee50+ZtU977U5tx7vP//5j9GpUyfD39+/yv3m5uYa/v7+RkhIiJGdne10P8c/zi+++KLRvXt3IzAw0EhOTjbuuOOOSuvplHHneb625/Iydf3cUt35sb7Hqe3jU5MdO3YYV155pZGcnGz4+/sb8fHxxqhRoyqsfVHVOTMtLc244oorjKSkJCMoKMjo1auX8b///c/YtWtXpe1XrVplXHvttUbPnj2NqKgoIzg42OjUqZNx0003Gfv27Svfrq6fRapjMYzj5mYS8RKvvPIKV199dfk3XyIi4jBq1CiWL1+OPh64z88//8yQIUOYPn06r732mtNtZs+ezf3338/SpUudTgMr0ljcPmZBxJ1SU1Mr/cE7ePAg//73v/H19eXss882qTIRERGHxx57DHB0txXxNG4fsyDiTg8//DALFy4sX1hm3759fPHFF+Tm5jJ79uwq50IXERFpTPv27eOdd95h06ZNvP/++4wbN86li7uKuIrCgjRr48aNY/PmzSxcuJBjx44RFBRE7969ueGGGyoNMBMREXGXXbt2ceeddxIWFsbEiRN58cUXzS5JxCmNWRAREREREac0ZkFERERERJxSWBAREREREacUFkRERERExCmFBRERERERcUphQUREREREnFJYEBERERERpxQWRERERETEKYUFERERERFxSmFBREREREScUlgQERERERGnFBZERERERMQphQUREREREXFKYUFERERERJxSWBAREREREacUFkRERERExCmFBRERERERcUphQUREREREnFJYEBERERERpxQWRERERETEKYUFERERERFxSmFBREREREScUlgQERERERGnFBZERERERMQphQUREREREXFKYUFERERERJxSWBAREREREacUFkREPNiKFSuYMGECSUlJWCwWPvnkE7NLEhERL6KwICLiwfLz8+nTpw/PPvus2aWIiIgX8jO7ABERqdr48eMZP3682WWIiIiXUsuCiIiIiIg4pbAgIiIiIiJOKSyIiIiIiIhTCgsiIiIiIuKUwoKIyHHmzJnDoEGDCA8PJz4+nsmTJ7Nt2zazyxIRETGFwoKIyHGWL1/OjBkzWLVqFd988w1Wq5UzzjiD/Px8U+rJy8tj/fr1rF+/HoDdu3ezfv169u3bZ0o9IiLiXSyGYRhmFyEi4qnS09OJj49n+fLlnHLKKW4//rJlyxg9enSlyy+//HLmzZvn9npERMS7aJ0FEZFqZGdnAxATE2PK8UeNGoW+0xEREbOoZUFEpAqGYTBp0iSOHTvG999/b3Y5IiIibqeWBRGRKtx4441s2LCBH374wexSRERETKGwICLixMyZM/nss89YsWIFycnJZpcjIiJiCoUFEZHjGIbBzJkz+fjjj1m2bBnt2rUzuyQRERHTKCyIiBxnxowZvPPOO3z66aeEh4eTmpoKQGRkJMHBwSZXJyIi4l4a4CwichyLxeL08rlz5zJt2jT3FiMiImIytSyIiBxH35+IiIj8RSs4i4iIiIiIUwoLIiIiIiLilMKCiIiIiIg4pbAgIiIiIiJOKSyIiIiIiIhTmg1JRKSZMAwDo7AQIy8PIz8fo6gIo6QEo7gYo7gYyv7/57+UlGBYrWC3g2GAYeAb24Lglm3AYgELwJ//+vqCny/4+f35r++flx33u78fBAZAYCD46rsoEZHmQGFBRKSJMIqLsWVmYhw7hj0nB3t2NvacHIycHOy5uRh5eY4P/g1g8fGD4JiGFxvg7wgOQYEQ9GeACPrz95AgCA4GH+drWoiIiOdQWBAR8TD2nBzsGRnYMjIq/Gvk5ppdWu2VlDp+cvOdX2+xQGgwhIZAWNm/IY5//XzdW6uIiFRJYUFExCSGzYY9LQ3boUOOn9RUbBkZUFJidmmNzzAgr8Dxc+SE64ICHcEh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ZkZhQUSaH3sx5LwFR5+Ekk1mV1M168Owf5jZVUhDWYD4OGiXrJAgIs2OwoKING/5XztCQ/5iPG6dBi3G1rT5+UJygmMa1JAgs6sREWkUCgsi4h2Kt8CxpyD7TTAKza7GQYuxNU0hwdA2CVolOAKDiEgzprAgIt7FmgFZL0LWc2A9ZF4dWoyt6YmNgratoEWMVlwWEa+hsCAi3smwQf5XjvUa8r4ASt17fPsNsHeKe48pdRfgD0nxju5G4aFmVyMi4nYKCyIi1jRH96TsV6Fki3uOqcXYPJfF4mg9SG7p+NdH62CIiPdSWBAROV7hKsdCb7nvgj238Y5z7DvIUn93jxIeCq1aOloSAgPMrkZExCMoLIiIOGMvgLyFkPuB418j33X7NixwYIUWY/MEgQGQ0MLRihARZnY1IiIeR2FBRKQm9kLH+IbcDxzjGxra4qDF2MwVGgwt46BlLESGa7CyiEg1FBZEROrCXuxYsyH3A8c6Cfasuu9Di7G5X2TYnwEhDsJCzK5GRKTJUFgQEakvw+oY45D/tSNAFK0FatG1SIuxNT5fH4iOdAxQbhkLwVo0TUSkPhQWRERcxXYU8pc4gkP+12Dd73w7LcbmehYLRIU71kKIjXb8X7MYiYg0mMKCiEhjKd4CBUug4Eco/NERHrQYm+tEhP0ZDqIcrQhaTVlExOUUFkRE3KV0P+TthMOtITsXcvLArhmRaiXA39FaEBnx57/h4O9ndlUiIs2ewoKIiFnsdsjNh6xcyMuHvALILYBSN68m7WkCAxytBhFhjoHJEWEacyAiYhKFBRERT1Nc4ggOeQWOEJH757+lVrMrcx0fH8cUpmU/IcEQGuL4f4C/2dWJiMifFBZERJqK0lIoLIai4r/+LTrhd085pQf4O1oIggIc/wYGQGDgX+EgKFDrG4iINAEKCyIizYVhQEmp48dqhVLbn/9aHf9abRX/bxh/hYvj/zUA/vzXYnFMQ+rnC75lPz5//d/vz9/LwkHZj4KAiEizoLAgIiIiIiJOaRJqERERERFxSmFBREREREScUlgQERERERGnFBZERERERMQphQUREREREXFKYUFERERERJxSWBAREREREacUFkRERERExCmFBRERERERcUphQUREREREnFJYEBERERERpxQWRERERETEKYUFERERERFxSmFBREREREScUlgQERERERGnFBZERERERMQphQUREREREXFKYUFERERERJxSWBAREREREacUFkRERERExCmFBRERERERcUphQUREREREnFJYEBERERERpxQWRERERETEKYUFERERERFxSmFBREREREScUlgQERERERGnFBZERERERMQphQUREREREXFKYUFERERERJxSWBAREREREacUFkRERERExCmFBRERERERcUphQUREREREnFJYEBERERERpxQWRERERETEKYUFERERERFxSmFBREREREScUlgQERERERGnFBZERERERMQphQUREREREXFKYUFERERERJxSWBAREREREacUFkRERERExCmFBRERERERcUphQUREREREnFJYEBERERERpxQWRERERETEKYUFERERERFxSmFBREREREScUlgQERERERGnFBZERERERMQphQUREREREXFKYUFERERERJxSWBAREREREaf+H9Dnb4XNteTFAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "学生成绩排名：\n",
      "    ID    姓名  总分    排名   分类\n",
      "10  11  学生11  85   1.0   良好\n",
      "6    7   学生7  84   2.0   良好\n",
      "25  26  学生26  83   3.0   良好\n",
      "12  13  学生13  83   3.0   良好\n",
      "26  27  学生27  82   5.0   良好\n",
      "0    1   学生1  81   6.0   良好\n",
      "27  28  学生28  81   6.0   良好\n",
      "20  21  学生21  81   6.0   良好\n",
      "14  15  学生15  80   9.0   良好\n",
      "29  30  学生30  79  10.0   中等\n",
      "22  23  学生23  78  11.0   中等\n",
      "8    9   学生9  76  12.0   中等\n",
      "18  19  学生19  76  12.0   中等\n",
      "4    5   学生5  74  14.0   中等\n",
      "16  17  学生17  73  15.0   中等\n",
      "24  25  学生25  73  15.0   中等\n",
      "28  29  学生29  70  17.0   中等\n",
      "2    3   学生3  70  17.0   中等\n",
      "5    6   学生6  38  19.0  不及格\n",
      "21  22  学生22  36  20.0  不及格\n",
      "15  16  学生16  36  20.0  不及格\n",
      "19  20  学生20  36  20.0  不及格\n",
      "17  18  学生18  36  20.0  不及格\n",
      "13  14  学生14  36  20.0  不及格\n",
      "23  24  学生24  33  25.0  不及格\n",
      "1    2   学生2  33  25.0  不及格\n",
      "11  12  学生12  32  27.0  不及格\n",
      "7    8   学生8  32  27.0  不及格\n",
      "3    4   学生4  31  29.0  不及格\n",
      "9   10  学生10  31  29.0  不及格\n",
      "学生 1 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 2（正确）\n",
      "题11：得分 8（正确）\n",
      "题12：得分 7（正确）\n",
      "题13：得分 9（正确）\n",
      "题14：得分 6（正确）\n",
      "题15：得分 10（正确）\n",
      "题16：得分 10（正确）\n",
      "题17：得分 15（正确）\n",
      "题18：得分 16（正确）\n",
      "题19：得分 40（正确）\n",
      "\n",
      "学生 2 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 2（正确）\n",
      "题11：得分 6（正确）\n",
      "题12：得分 0\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 5（正确）\n",
      "题14：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题15：得分 1\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 2\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 8\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 8\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题19：得分 15（正确）\n",
      "\n",
      "学生 3 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 9（正确）\n",
      "题12：得分 5（正确）\n",
      "题13：得分 7（正确）\n",
      "题14：得分 6（正确）\n",
      "题15：得分 6（正确）\n",
      "题16：得分 11（正确）\n",
      "题17：得分 10（正确）\n",
      "题18：得分 16（正确）\n",
      "题19：得分 33（正确）\n",
      "\n",
      "学生 4 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题15：得分 1\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 3\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 5\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 12（正确）\n",
      "题19：得分 11（正确）\n",
      "\n",
      "学生 5 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 8（正确）\n",
      "题12：得分 7（正确）\n",
      "题13：得分 7（正确）\n",
      "题14：得分 9（正确）\n",
      "题15：得分 8（正确）\n",
      "题16：得分 13（正确）\n",
      "题17：得分 12（正确）\n",
      "题18：得分 10（正确）\n",
      "题19：得分 39（正确）\n",
      "\n",
      "学生 6 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 4\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 5（正确）\n",
      "题13：得分 5（正确）\n",
      "题14：得分 5（正确）\n",
      "题15：得分 6（正确）\n",
      "题16：得分 0\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 5\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 8\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题19：得分 25（正确）\n",
      "\n",
      "学生 7 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 9（正确）\n",
      "题12：得分 10（正确）\n",
      "题13：得分 7（正确）\n",
      "题14：得分 10（正确）\n",
      "题15：得分 10（正确）\n",
      "题16：得分 11（正确）\n",
      "题17：得分 13（正确）\n",
      "题18：得分 14（正确）\n",
      "题19：得分 46（正确）\n",
      "\n",
      "学生 8 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 5（正确）\n",
      "题14：得分 5（正确）\n",
      "题15：得分 4\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 4\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 8\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 2\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题19：得分 18（正确）\n",
      "\n",
      "学生 9 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 7（正确）\n",
      "题12：得分 5（正确）\n",
      "题13：得分 9（正确）\n",
      "题14：得分 9（正确）\n",
      "题15：得分 8（正确）\n",
      "题16：得分 14（正确）\n",
      "题17：得分 12（正确）\n",
      "题18：得分 12（正确）\n",
      "题19：得分 38（正确）\n",
      "\n",
      "学生 10 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 0\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题15：得分 6（正确）\n",
      "题16：得分 9\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 2\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 6\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题19：得分 14（正确）\n",
      "\n",
      "学生 11 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 8（正确）\n",
      "题12：得分 6（正确）\n",
      "题13：得分 8（正确）\n",
      "题14：得分 8（正确）\n",
      "题15：得分 8（正确）\n",
      "题16：得分 13（正确）\n",
      "题17：得分 14（正确）\n",
      "题18：得分 20（正确）\n",
      "题19：得分 38（正确）\n",
      "\n",
      "学生 12 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 0\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 1\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 5（正确）\n",
      "题15：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 8\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 10（正确）\n",
      "题18：得分 4\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题19：得分 10（正确）\n",
      "\n",
      "学生 13 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 9（正确）\n",
      "题12：得分 5（正确）\n",
      "题13：得分 7（正确）\n",
      "题14：得分 10（正确）\n",
      "题15：得分 10（正确）\n",
      "题16：得分 12（正确）\n",
      "题17：得分 12（正确）\n",
      "题18：得分 18（正确）\n",
      "题19：得分 41（正确）\n",
      "\n",
      "学生 14 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 4\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 4\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 1\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题15：得分 0\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 7\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 3\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 14（正确）\n",
      "题19：得分 12（正确）\n",
      "\n",
      "学生 15 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 2（正确）\n",
      "题11：得分 7（正确）\n",
      "题12：得分 7（正确）\n",
      "题13：得分 5（正确）\n",
      "题14：得分 10（正确）\n",
      "题15：得分 6（正确）\n",
      "题16：得分 12（正确）\n",
      "题17：得分 15（正确）\n",
      "题18：得分 18（正确）\n",
      "题19：得分 35（正确）\n",
      "\n",
      "学生 16 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 5（正确）\n",
      "题13：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 6（正确）\n",
      "题15：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 3\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 3\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 12（正确）\n",
      "题19：得分 18（正确）\n",
      "\n",
      "学生 17 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 6（正确）\n",
      "题12：得分 7（正确）\n",
      "题13：得分 5（正确）\n",
      "题14：得分 9（正确）\n",
      "题15：得分 5（正确）\n",
      "题16：得分 12（正确）\n",
      "题17：得分 13（正确）\n",
      "题18：得分 16（正确）\n",
      "题19：得分 32（正确）\n",
      "\n",
      "学生 18 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 1\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 1\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 6（正确）\n",
      "题15：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 1\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 9\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 12（正确）\n",
      "题19：得分 14（正确）\n",
      "\n",
      "学生 19 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 2（正确）\n",
      "题11：得分 6（正确）\n",
      "题12：得分 8（正确）\n",
      "题13：得分 7（正确）\n",
      "题14：得分 9（正确）\n",
      "题15：得分 8（正确）\n",
      "题16：得分 14（正确）\n",
      "题17：得分 12（正确）\n",
      "题18：得分 12（正确）\n",
      "题19：得分 38（正确）\n",
      "\n",
      "学生 20 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 6（正确）\n",
      "题15：得分 1\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 7\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 6\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 10（正确）\n",
      "题19：得分 13（正确）\n",
      "\n",
      "学生 21 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 8（正确）\n",
      "题12：得分 9（正确）\n",
      "题13：得分 9（正确）\n",
      "题14：得分 6（正确）\n",
      "题15：得分 6（正确）\n",
      "题16：得分 15（正确）\n",
      "题17：得分 10（正确）\n",
      "题18：得分 18（正确）\n",
      "题19：得分 38（正确）\n",
      "\n",
      "学生 22 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 2（正确）\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 4\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 5（正确）\n",
      "题13：得分 5（正确）\n",
      "题14：得分 6（正确）\n",
      "题15：得分 6（正确）\n",
      "题16：得分 4\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 2\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 4\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题19：得分 26（正确）\n",
      "\n",
      "学生 23 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 5（正确）\n",
      "题12：得分 10（正确）\n",
      "题13：得分 6（正确）\n",
      "题14：得分 7（正确）\n",
      "题15：得分 10（正确）\n",
      "题16：得分 14（正确）\n",
      "题17：得分 12（正确）\n",
      "题18：得分 14（正确）\n",
      "题19：得分 38（正确）\n",
      "\n",
      "学生 24 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 2（正确）\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 6（正确）\n",
      "题12：得分 0\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 4\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题15：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 7\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 1\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 10（正确）\n",
      "题19：得分 15（正确）\n",
      "\n",
      "学生 25 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 5（正确）\n",
      "题12：得分 9（正确）\n",
      "题13：得分 5（正确）\n",
      "题14：得分 7（正确）\n",
      "题15：得分 10（正确）\n",
      "题16：得分 10（正确）\n",
      "题17：得分 15（正确）\n",
      "题18：得分 12（正确）\n",
      "题19：得分 36（正确）\n",
      "\n",
      "学生 26 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 8（正确）\n",
      "题12：得分 9（正确）\n",
      "题13：得分 9（正确）\n",
      "题14：得分 7（正确）\n",
      "题15：得分 9（正确）\n",
      "题16：得分 14（正确）\n",
      "题17：得分 15（正确）\n",
      "题18：得分 12（正确）\n",
      "题19：得分 42（正确）\n",
      "\n",
      "学生 27 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 8（正确）\n",
      "题12：得分 8（正确）\n",
      "题13：得分 8（正确）\n",
      "题14：得分 10（正确）\n",
      "题15：得分 10（正确）\n",
      "题16：得分 10（正确）\n",
      "题17：得分 12（正确）\n",
      "题18：得分 16（正确）\n",
      "题19：得分 44（正确）\n",
      "\n",
      "学生 28 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 9（正确）\n",
      "题12：得分 7（正确）\n",
      "题13：得分 6（正确）\n",
      "题14：得分 10（正确）\n",
      "题15：得分 8（正确）\n",
      "题16：得分 12（正确）\n",
      "题17：得分 15（正确）\n",
      "题18：得分 14（正确）\n",
      "题19：得分 40（正确）\n",
      "\n",
      "学生 29 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 5（正确）\n",
      "题12：得分 6（正确）\n",
      "题13：得分 8（正确）\n",
      "题14：得分 9（正确）\n",
      "题15：得分 8（正确）\n",
      "题16：得分 10（正确）\n",
      "题17：得分 12（正确）\n",
      "题18：得分 12（正确）\n",
      "题19：得分 36（正确）\n",
      "\n",
      "学生 30 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 8（正确）\n",
      "题12：得分 9（正确）\n",
      "题13：得分 5（正确）\n",
      "题14：得分 6（正确）\n",
      "题15：得分 9（正确）\n",
      "题16：得分 15（正确）\n",
      "题17：得分 13（正确）\n",
      "题18：得分 14（正确）\n",
      "题19：得分 37（正确）\n",
      "\n",
      "['选择题第 3 题学生整体得分较低，建议加强该知识点的教学。', '其他题第 1 题学生整体得分较低，建议补充教学内容。', '其他题第 2 题学生整体得分较低，建议补充教学内容。']\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "class GradeAnalysis:\n",
    "    def __init__(self, file_path):\n",
    "        # 导入数据\n",
    "        self.data = pd.read_excel(file_path, engine='openpyxl')\n",
    "        self.students = self._process_data()\n",
    "\n",
    "    def _process_data(self):\n",
    "        \"\"\"\n",
    "        处理 Excel 数据并存储为字典格式\n",
    "        \"\"\"\n",
    "        students = {}\n",
    "        for _, row in self.data.iterrows():\n",
    "            student_id = str(row['ID'])  # 学生ID\n",
    "            students[student_id] = {\n",
    "                \"name\": row['姓名'],  # 学生姓名\n",
    "                \"scores\": row[2:-2].tolist(),  # 各题得分（去除选择题总分、编程题总分和总分列）\n",
    "            }\n",
    "        return students\n",
    "\n",
    "    def grade_distribution(self):\n",
    "        \"\"\"\n",
    "        统计成绩分布：成绩区间人数\n",
    "        \"\"\"\n",
    "        bins = [0, 60, 70, 80, 90, 100]  # 分数区间\n",
    "        labels = ['不及格', '及格', '中等', '良好', '优秀']\n",
    "        self.data['分数区间'] = pd.cut(self.data['总分'], bins=bins, labels=labels, right=False)\n",
    "        distribution = self.data['分数区间'].value_counts().sort_index()\n",
    "        return distribution\n",
    "\n",
    "    def pass_rate_and_average(self):\n",
    "        \"\"\"\n",
    "        统计及格率和平均分\n",
    "        \"\"\"\n",
    "        total_students = len(self.data)\n",
    "        passed_students = len(self.data[self.data['总分'] >= 60])\n",
    "        pass_rate = passed_students / total_students * 100\n",
    "        average_score = self.data['总分'].mean()\n",
    "        return pass_rate, average_score\n",
    "\n",
    "    def single_question_analysis(self):\n",
    "        \"\"\"\n",
    "        单题得分分析：统计每道题的平均分、最高分、最低分，并区分题型判断得分情况\n",
    "        \"\"\"\n",
    "        question_columns = self.data.columns[2:-2]  # 去除选择题总分、编程题总分和总分列\n",
    "        analysis = {}\n",
    "        for index, question in enumerate(question_columns):\n",
    "            # 检查列的数据类型是否为数值型\n",
    "            if pd.api.types.is_numeric_dtype(self.data[question]):\n",
    "                average_score = self.data[question].mean()\n",
    "                max_score = self.data[question].max()\n",
    "                min_score = self.data[question].min()\n",
    "                if index < 10:  # 假设前 10 题为选择题，每题 2 分\n",
    "                    if average_score < 1:  # 根据选择题分值调整判断标准\n",
    "                        question_type = \"选择题（较难）\"\n",
    "                    else:\n",
    "                        question_type = \"选择题（较易）\"\n",
    "                elif index < 15:  # 假设接下来 5 题为简答题，每题 10 分\n",
    "                    if average_score < 5:\n",
    "                        question_type = \"简答题（较难）\"\n",
    "                    else:\n",
    "                        question_type = \"简答题（较易）\"\n",
    "                else:  # 其他题\n",
    "                    if average_score < 10:\n",
    "                        question_type = \"其他题（较难）\"\n",
    "                    else:\n",
    "                        question_type = \"其他题（较易）\"\n",
    "                analysis[question] = {\n",
    "                    \"average\": average_score,\n",
    "                    \"max\": max_score,\n",
    "                    \"min\": min_score,\n",
    "                    \"type\": question_type\n",
    "                }\n",
    "        return analysis\n",
    "\n",
    "    def rank_students(self):\n",
    "        \"\"\"\n",
    "        按总分排名，并分类统计\n",
    "        \"\"\"\n",
    "        self.data['排名'] = self.data['总分'].rank(ascending=False, method='min')  # 按总分排名\n",
    "        bins = [0, 60, 70, 80, 90, 100]  # 分数区间\n",
    "        labels = ['不及格', '及格', '中等', '良好', '优秀']\n",
    "        self.data['分类'] = pd.cut(self.data['总分'], bins=bins, labels=labels, right=False)\n",
    "        rank_data = self.data.sort_values(by='总分', ascending=False)[['ID', '姓名', '总分', '排名', '分类']]\n",
    "        return rank_data\n",
    "\n",
    "    # 学生个性化反馈报告生成\n",
    "    def generate_student_feedback(self, student_id):\n",
    "        # 检查学生ID是否在self.students中\n",
    "        if student_id in self.students:\n",
    "            student_info = self.students[student_id]\n",
    "            feedback = f\"学生 {student_id} 的成绩分析报告：\\n\"\n",
    "            for i, score in enumerate(student_info['scores']):\n",
    "                question_name = f\"题{i + 1}\"\n",
    "                if i < 10 and score >= 1:  # 根据选择题分值调整判断标准，判断为正确\n",
    "                    feedback += f\"{question_name}：得分 {score}（正确）\\n\"\n",
    "                elif 10 <= i < 15 and score >= 5:  # 简答题判断为正确\n",
    "                    feedback += f\"{question_name}：得分 {score}（正确）\\n\"\n",
    "                elif i >= 15 and score >= 10:  # 其他题判断为正确\n",
    "                    feedback += f\"{question_name}：得分 {score}（正确）\\n\"\n",
    "                else:\n",
    "                    feedback += f\"{question_name}：得分 {score}\\n\"\n",
    "                    if i < 10 and score < 1:  # 根据选择题分值调整判断标准\n",
    "                        feedback += f\"  本题为选择题，回答错误，建议复习相关知识点。\\n\"\n",
    "                    elif 10 <= i < 15 and score < 5:  # 简答题判断\n",
    "                        feedback += f\"  本题为简答题，回答情况不佳，建议加强复习。\\n\"\n",
    "                    elif i >= 15 and score < 10:  # 其他题判断\n",
    "                        feedback += f\"  本题回答有欠缺，建议进一步学习。\\n\"\n",
    "            return feedback\n",
    "        else:\n",
    "            print(f\"未找到ID为 {student_id} 的学生信息。\")\n",
    "            return None\n",
    "\n",
    "    # 教学改进建议生成\n",
    "    def generate_teaching_improvement(self):\n",
    "        question_scores = []\n",
    "        for question in self.data.columns[2:-2]:\n",
    "            # 检查列的数据类型是否为数值型\n",
    "            if pd.api.types.is_numeric_dtype(self.data[question]):\n",
    "                scores = self.data[question]\n",
    "                average_score = scores.mean()\n",
    "                question_scores.append(average_score)\n",
    "\n",
    "        improvement_suggestions = []\n",
    "        for i, score in enumerate(question_scores):\n",
    "            if i < 10 and score < 1:  # 根据选择题分值调整判断标准\n",
    "                improvement_suggestions.append(f\"选择题第 {i + 1} 题学生整体得分较低，建议加强该知识点的教学。\")\n",
    "            elif 10 <= i < 15 and score < 5:  # 简答题判断\n",
    "                improvement_suggestions.append(f\"简答题第 {i - 9} 题学生整体得分较低，建议详细讲解。\")\n",
    "            elif i >= 15 and score < 10:  # 其他题判断\n",
    "                improvement_suggestions.append(f\"其他题第 {i - 14} 题学生整体得分较低，建议补充教学内容。\")\n",
    "\n",
    "        return improvement_suggestions\n",
    "\n",
    "    # 生成成绩分布柱状图\n",
    "    def plot_grade_distribution(self):\n",
    "        distribution = self.grade_distribution()\n",
    "        plt.figure(figsize=(8, 6))\n",
    "        bars = plt.bar(distribution.index, distribution.values, color='skyblue')\n",
    "        plt.xlabel('Score range', fontsize=12)\n",
    "        plt.ylabel('Number of people', fontsize=12)\n",
    "        plt.title('Column chart of class grade distribution', fontsize=14)\n",
    "        \n",
    "        # 设置横坐标标签\n",
    "        plt.xticks(distribution.index, labels=['fail', 'pass', 'medium', 'good', 'excellent'], fontsize=10)\n",
    "        plt.yticks(fontsize=10)\n",
    "        plt.grid(axis='y', linestyle='--', alpha=0.7)\n",
    "\n",
    "        # 在柱状图上显示具体数值\n",
    "        for bar in bars:\n",
    "            height = bar.get_height()\n",
    "            plt.text(bar.get_x() + bar.get_width() / 2, height, f'{int(height)}', ha='center', va='bottom')\n",
    "\n",
    "        plt.show()\n",
    "\n",
    "    # 生成各题型得分平均分布饼状图\n",
    "    def plot_question_type_average_distribution(self):\n",
    "        question_analysis = self.single_question_analysis()\n",
    "        types = {}\n",
    "        for question in question_analysis:\n",
    "            question_type = question_analysis[question]['type']\n",
    "            if question_type in types:\n",
    "                types[question_type].append(question_analysis[question]['average'])\n",
    "            else:\n",
    "                types[question_type] = [question_analysis[question]['average']]\n",
    "        for question_type in types:\n",
    "            types[question_type] = sum(types[question_type]) / len(types[question_type])\n",
    "\n",
    "        # 定义颜色列表\n",
    "        colors = ['lightcoral', 'lightgreen', 'lightskyblue', 'gold', 'lightpink', 'lightyellow', 'lightcyan']\n",
    "\n",
    "        # 定义标签\n",
    "        labels = ['1', '2', '3', '4', '5']\n",
    "\n",
    "        plt.figure(figsize=(8, 6))\n",
    "        wedges, texts, autotexts = plt.pie(\n",
    "            types.values(), \n",
    "            labels=labels[:len(types)],  # 使用数字标签\n",
    "            autopct='%1.1f%%', \n",
    "            startangle=90, \n",
    "            colors=colors[:len(types)],  # 使用定义的颜色列表\n",
    "            textprops={'fontsize': 10}\n",
    "        )\n",
    "        plt.title('Pie chart of average scores distribution for various question types in the class', fontsize=14)\n",
    "        \n",
    "        # 创建图例，使用数字标签\n",
    "        plt.legend(wedges, labels[:len(types)], title=\"Question type\", loc=\"center left\", bbox_to_anchor=(1, 0, 0.5, 1), handlelength=0)\n",
    "        \n",
    "        plt.show()\n",
    "\n",
    "\n",
    "# 示例：使用数据分析功能，这里使用上传的文件路径\n",
    "file_path = r\"F:\\作业\\班级成绩.xlsx\"\n",
    "analysis = GradeAnalysis(file_path)\n",
    "\n",
    "# 1. 成绩分布统计\n",
    "print(\"成绩分布统计：\")\n",
    "print(analysis.grade_distribution())\n",
    "\n",
    "# 2. 成绩分布柱状图绘制\n",
    "analysis.plot_grade_distribution()\n",
    "\n",
    "# 3. 统计及格率和平均分\n",
    "pass_rate, average_score = analysis.pass_rate_and_average()\n",
    "print(f\"\\n及格率：{pass_rate:.2f}%\")\n",
    "print(f\"平均分：{average_score:.2f}\")\n",
    "\n",
    "# 4. 单题得分分析\n",
    "print(\"\\n单题得分分析：\")\n",
    "single_question_stats = analysis.single_question_analysis()\n",
    "for question, stats in single_question_stats.items():\n",
    "    print(f\"{question} - 平均分: {stats['average']:.2f}, 最高分: {stats['max']}, 最低分: {stats['min']}, 类型: {stats['type']}\")\n",
    "\n",
    "# 5. 各题型得分平均分布饼状图绘制\n",
    "analysis.plot_question_type_average_distribution()\n",
    "\n",
    "# 6. 学生成绩排名\n",
    "print(\"\\n学生成绩排名：\")\n",
    "print(analysis.rank_students())\n",
    "\n",
    "# 7. 对 30 个学生进行个性化分析\n",
    "for student_id in analysis.students.keys():\n",
    "        print(analysis.generate_student_feedback(student_id))\n",
    "\n",
    "# 8. 生成教学改进建议\n",
    "print(analysis.generate_teaching_improvement())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "成绩分布统计：\n",
      "不及格    12\n",
      "及格      0\n",
      "中等      9\n",
      "良好      9\n",
      "优秀      0\n",
      "Name: 分数区间, dtype: int64\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArAAAAIlCAYAAAAt78tGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABlsklEQVR4nO3deVxU9f7H8fdhEERkkUVFwX0Br/uWZqWlaWZqu6m3tKwsKzUts821wrLSyl/dq93kVre0xW6aZVlpVi654JpL7nsKIriCMN/fH14mRwZkEByPvp6Ph4/ic75z5vOdc2Z4z+HMGcsYYwQAAADYhJ+vGwAAAAC8QYAFAACArRBgAQAAYCsEWAAAANgKARYAAAC2QoAFAACArRBgAQAAYCsEWAAAANgKARYAAAC2QoAFCjBq1ChZlqX58+f7uhWfqlatmqpVq+brNi6IOXPmqFWrVgoLC5NlWerbt2+xrduyLLVr167Y1nc589U+mZSUJMuylJSU5Fb35bbt27evLMvS9u3bXbX58+fLsiyNGjXKJz1Jl9frBi48Aixsb/ny5erXr59q166t4OBgBQUFqWbNmrr77rs1d+5cX7eHYuDpF3RJ2LZtm26++Wbt3LlT999/v0aOHKmbb765RO8TsOsb5Qv1vAQ88fd1A0BROZ1OPfHEE5owYYL8/f113XXXqVu3bipVqpS2bt2q2bNn68MPP9SYMWP0/PPP+7pd2MAPP/ygzMxMvf7667rrrrt83Q5sZP369SpTpoxP7jsxMVHDhw9X5cqVfXL/+fnhhx983QIuYQRY2NZzzz2nCRMmqHHjxvrss89Us2ZNt+UnTpzQpEmTlJqa6qMOYTd79+6VJFWsWNHHncBu4uPjfXbfMTExiomJ8dn95+fs12SgOHEKAWxp8+bNeuWVVxQZGak5c+Z4fKEMCgrSk08+qdGjR7vVU1NT9fjjj6t69eoKDAxU+fLl1aNHD/3++++Fuu+Czi3bvn27x/Mmc88FS09P18MPP6yYmBgFBwfrmmuu0YoVKyRJ+/fvV58+fVS+fHmVKVNGnTp10ubNm/PcR+65dgcPHtR9992n8uXLKygoSK1atfL6T5BZWVl644031LJlS4WEhKhs2bKqV6+ehgwZorS0tDzjjx07piFDhqhy5coKDAxUw4YN9dlnn+UZt2nTJg0bNkxNmzZVZGSkSpcurTp16mj48OE6evRonvHt2rWTZVnKzMzUiBEjVKtWLZUqVUqjRo1StWrV9O9//1uSVL16dVmW5dX5huvWrVOPHj1Uvnx5BQYGqnr16nr88cd16NAh15jc7TZy5EhJ0rXXXuu6n8L8efTAgQN64oknVLduXZUuXVoRERFq1aqVXnvttXPe1tvHat++fRo0aJBq166toKAgRUREqEGDBhowYIAyMjJc49LT0zVixAjVq1dPZcuWVVhYmOLj43Xvvfdq165dhXjkpOPHj2vYsGGKi4tT6dKlVb9+fU2ZMiXf50DudtmzZ4/69u2rihUrys/Pz7Vfzps3T/fdd5/q1q2rsmXLqmzZsmrevLkmT56cbw9ffvmlWrRooaCgIFWoUEEPPPCAx30zV1ZWll5//XU1bdpUwcHBCgkJ0dVXX62ZM2cWas65Dh06pIceekgVKlRQmTJl1KJFC33xxRf5jve0TxZmG7Rr1871GnXmfnfmuaO5rx+HDx/WwIEDFRcXJ39/f9d5uOf6U/6CBQvUtm1blS1bVhEREerVq5d2795dqDmc3cOZP5/reZnfObDHjx/XqFGjFB8f73q+dOnSRQsXLswz9szTKz755BM1bdpUQUFBiomJ0cCBA3XixAmP/eLSxxFY2FJSUpJycnLUv39/VahQocCxgYGBrv9PTU1Vq1attHnzZrVr10533XWXtm/frs8++0yzZ8/W3Llz1bp16xLpOSsrS9dff71OnjypHj166M8//9Qnn3yiDh06aOHChbrhhhtUsWJF/f3vf9fmzZs1a9Ys3XTTTVq3bp0cDofbug4fPqw2bdooNDRUvXv31oEDBzR9+nR16tRJy5cvV/369c/Zz8mTJ9WpUyctWLBAtWvX1r333qvAwED98ccf+sc//qF77rlH5cqVc40/deqUOnbsqEOHDunWW2/V8ePHNW3aNN15552aM2eOOnbs6Bo7Y8YM/etf/9K1116rdu3ayel0avHixXr55Zf1008/acGCBSpVqlSenm699VatWrVKnTp1UkREhGrUqKHBgwcrKSlJq1at0qBBgxQeHi5JhfpwyMKFC9WxY0dlZmbq9ttvV7Vq1bR48WJNnDhRs2fP1qJFixQZGanw8HCNHDlS8+fP108//aQ+ffq41p97f/n5448/dO2112rPnj266qqrdPPNN+vYsWNau3atXnzxRQ0dOrTA23vzWB0/flxt2rTR9u3b1bFjR91yyy3KysrS1q1blZSUpGHDhik0NFTGGHXq1ElLlixRmzZtdMMNN8jPz0/bt2/XF198oT59+iguLq7AvnJycnTTTTdp3rx5atSokXr16qVDhw5p6NChBb55SE1NVevWrRUREaEePXooKytLoaGhkqSXX35ZmzdvVqtWrXTLLbfo8OHDmjNnjvr376+NGzfmCfzvv/+++vTpo9DQUN19990KDw/XV199pQ4dOigrK0sBAQFu4zMzM3XDDTdo/vz5atKkifr166dTp05p9uzZ6t69u9566y09+uijBc4793Fu166d1qxZo9atW6tt27batWuXevTo4bafF6Sw2yD3ze659rvMzExdd911OnLkiLp27aqAgIBzvvZJ0uLFi5WYmKguXbpo4MCBWrFihT7++GP98ssvWrp0aaHW4UlRn5eZmZlq3769Fi9erKZNm2rw4MGu16/vvvtO06dP16233prndv/3f/+nb775Rt27d1e7du00Z84cvfXWW0pNTdV//vOfIs0BNmcAG2rXrp2RZL7//nuvbnffffcZSebpp592q8+ZM8dIMrVr1zY5OTmu+siRI40kM2/ePFdt3rx5RpIZOXJknvVv27bNSDJ9+vRxq1etWtVIMnfccYc5deqUqz5u3DgjyYSHh5vHH3/cOJ1O17KHH37YSDIzZsxwW5ckI8kMGDDArdd3333XSDL9+/cv1GPx5JNPGknm7rvvNtnZ2W7LDh8+bI4cOZKn/+7du5vMzExX/fvvvzeSTKdOndxuv3v3brdxuUaPHm0kmQ8//NCt3rZtWyPJNG7c2KSmpua5XZ8+fYwks23btkLNzRhjcnJyTO3atY0kM2fOHLdlTz/9tJFk+vXr51b3tL3PpWXLlkaSmTx5cp5lu3btcvtZkmnbtq1bzZvHaubMmUaSefzxx/OMz8jIcK1n9erVRpK55ZZb8ow7efKk27bNT+7+1K1bN7f9bP369aZ06dIenwO5++a9996bZ58yxpitW7fmqZ06dcpcf/31xuFwmB07drjq6enpJjQ01AQHB5uNGze66llZWeaaa64xkkzVqlXd1vXMM88YSWbUqFFuz6WMjAzTvHlzExAQYPbs2XPOuefuBw888IBb/dtvv3XNcerUqXnmfua29WYbnGu/y33+dezY0Rw/fjzPck/P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Q0NVvXp1bd682XWu/bl6PZdzbYOi7N+F9euvv+Y5xeTEiRNavny5goKC3M4vLleunMfXte3bt3v8M723fYeGhqpGjRravHmzx/sp7GswIBFgYVO1atXSsGHDlJKSos6dO2vbtm15xpw8eVKvv/6661qVAQEB6tmzp1JSUpSYmOg29vvvv9c333yjWrVqqU2bNgXed+41LGfOnOl2LdE///xTL7zwwvlP7gLw9/dX//79lZ6erkGDBuX5BZSenu7xGqSFkXue78KFC91OLdi9e7eGDx9epHXmfrDL07Ur89OmTRvVrFlT33zzTZ4PQiUmJiolJUU9e/b0+AGqwmrRooVatmypBQsW5DmqKJ37yKy3j9XatWu1Y8eOPPXcI1e5H/DZtm2bx+sanz2uIL1795YkPf/88269bdiwIc/R0sLInesvv/ziVv/pp588Pnbdu3dXaGio3nvvPbfzNE+dOpXnQ5jS6X364Ycf1o4dO/TEE094DLFr167N94jkme6++25lZWVpxIgRbvXvvvuu0N8u5c02KMr+XVgbN27Ue++951YbP368Dh48mGf/b968ubZv3+72pi8rK0tDhgzxuO6i9N2nTx+dOnVKTz/9tFuwXrt2raZOnaqwsDC+vhmFwikEsK0XXnhBJ0+e1IQJE1S3bl1dd911ql+/vkqVKqVt27bp+++/V2pqqluozL225gsvvKCFCxfqiiuucF0HtkyZMpo6darbJ649CQgI0KOPPqpx48apadOm6t69u44cOaJZs2apbdu2riNNF7sxY8Zo8eLF+uCDD7R48WJ17txZgYGB2rp1q+bMmaNffvmlSEdCYmJidNttt+nzzz9X8+bN1b59e/3555/66quvdN1112nr1q1er/O6667Tq6++qv79++uOO+5QcHCwqlSp4rqKgyd+fn5KSkpSp06ddOONN+qOO+5Q1apVtWTJEv3444+qWbOmxo0b53UvZ/vwww/Vrl07Pfjgg/rggw/UunVrnTx5UuvWrVNycnKB3wTn7WP1/fffa+jQoWrTpo3i4+MVGRmprVu3aubMmQoKCnJduWDVqlW65ZZb1KJFC9WvX18VK1bUnj179N///lcOh+Oc16aVpHvvvVcffPCBZs6cqWbNmqlTp046dOiQpk2bpuuvv16zZs0653PlTF27dlW1atX0yiuvaO3atapfv742btyo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V6edntNFfLTyUjwC+2STaN7hMifmxJyYE3NiTjacU1pamiIjI5Wenu7Ka/m5qI/AVqxYUdLpI7FnBtgDBw7kOSp7psDAQAUGBuap+/v7y9/ffcq5D/7Zch/MwtbPXq8sS5JkLM/jPdYty8u6n4zlYeX51E8HUy/qfl70nl/9As8pd1sWejsVoW5Zlsd6fvuSt/Xz3veKUGdOzEliTvn16G2dOTEniTnl12NR6p74/CoEBalevboqVqyouXPnumpZWVn66aefdOWVV/qwMwAAAPiKz4/AHj16VJs3b3b9vG3bNq1cuVIRERGqUqWKBg8erJdeekm1a9dW7dq19dJLL6lMmTLq1auXD7sGAACAr/g8wC5btkzXXnut6+chQ4ZIkvr06aOkpCQNGzZMJ06c0IABA5SWlqYrrrhC3333nUJCQnzVMgAAAHzoovoQV0nJyMhQWFhYoU4KLi7jklMuyP3A3fAmUb5uAQAAFIE3ee2iPgcWAAAAOBsBFgAAALZCgAUAAICtEGABAABgKwRYAAAA2AoBFgAAALZCgAUAAICtEGABAABgKwRYAAAA2AoBFgAAALZCgAUAAICtEGABAABgKwRYAAAA2AoBFgAAALZCgAUAAICtEGABAABgKwRYAAAA2AoBFgBs5MiRIxo8eLCqVq2qoKAgXXnllVq6dKmv28J5YrsC3iHAAoCN3H///Zo7d64++OADrVmzRh07dlSHDh20Z88eX7eG88B2BbxjGWOMr5soaRkZGQoLC1N6erpCQ0MvyH2OS065IPcDd8ObRPm6BaDEnDhxQiEhIfryyy/VpUsXV71x48a66aab9MILL/iwOxQV2xU4zZu8xhFYALCJ7Oxs5eTkqHTp0m71oKAg/fLLLz7qCueL7Qp4jwALADYREhKi1q1ba+zYsdq7d69ycnL04YcfasmSJdq3b5+v20MRsV0B7xFgAcBGPvjgAxljVLlyZQUGBurNN99Ur1695HA4fN0azgPbFfAOARYAbKRmzZr66aefdPToUe3atUu//fabTp06perVq/u6NZwHtivgHQIsANhQcHCwYmJilJaWpm+//Vbdu3f3dUsoBmxXoHD8fd0AAKDwvv32WxljVLduXW3evFlPPvmk6tatq3vvvdfXreE8sF0B73AEFgBsJD09XY888oji4+N1zz336KqrrtJ3332nUqVK+bo1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BgzI88EqPz8/DRgwQFu2bMnnlgAAAMD58zrAVq1aVcePH/e47Pjx44qLizvvpgAAAID8eB1ghw4dqjFjxiglJcWtfuDAAb3wwgt64okniq05AAAA4GxenwO7du1aZWRkqFq1amrfvr0qVqyo/fv364cfflBUVJTWrVungQMHSjp9Qd033nij2JsGAADA5cvrADtp0iTX/8+aNctt2c6dO92WE2ABAABQ3LwOsHwDFgAAAHypSF9kAAAAAPhKkb9K9ocfftAPP/yg1NRURUVFqX379rruuuuKszcAAAAgD68DbFZWlm677TZ9/fXXMsbI399f2dnZGjdunLp06aLPP/9cpUqVKoleAQAAAO9PIRgzZoy+/fZbjRs3Tn/++aeysrL0559/6uWXX9a3336rMWPGlESfAAAAgKQiHIH9+OOP9cwzz+jJJ5901aKjo/XEE0/o6NGjev/99zV27NhibRIAAADI5fUR2N27d+vqq6/2uOzqq6/Wnj17zrspAAAAID9eB9jo6GitWbPG47I1a9YoOjr6vJsCAAAA8uN1gO3WrZtGjBihGTNmuNW//PJLjRo1St27dy+25gAAAICzeX0O7Isvvqhff/1Vd9xxh4KDg1WxYkX9+eefOnr0qBo0aKAXX3yxJPoEAAAAJBUhwJYrV06//fabkpKSNG/ePKWmpqpp06Zq37697rnnHgUGBpZEnwAAAICkIn6RQWBgoPr376/+/fsXdz8AAABAgYr8TVwbNmzQTz/9pJSUFPXr108VK1bU3r17Va5cOQUFBRVnjwAAAICL1wE2JydHDz74oJKSkmSMkWVZ6ty5sypWrKj+/furSZMmfJkBAAAASozXVyF48cUX9dFHH2n8+PFau3atjDGuZZ07d9acOXOKtUEAAADgTF4fgU1KStLzzz+vIUOGKCcnx21Z9erVtW3btmJrDgAAADib10dg9+zZo9atW3tcVrp0aR05cuS8mwIAAADy43WALV++vLZu3epx2caNGxUbG3veTQEAAAD58TrA3njjjXrxxRe1Z88eV82yLKWnp+vNN99U165di7VBAAAA4ExeB9gxY8YoOztb9erV02233SbLsvTMM8+ofv36OnnypJ5//vmS6BMAAACQVIQAW6FCBS1dulQ9e/bU8uXL5XA4tGrVKnXu3FkLFy5URERESfQJAAAASCriFxlUqFBB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XObk1ZxeW32I55MP5jS0UWSJ7XuvrUplO/lgTkMbRV6SrxHM6cLNKS0tTZGRkUpPT3fltfx4fQS2U6dOkqSkpCT9+9//dltmjJFlWXkaOx8xMTGqV6+eWy0hIUGff/55vrcJDAxUYGBgnrq/v7/8/d2nnPvgny33wSxs/ez16n+h3liex3usW5aXdT8ZT5+ly6d++sXMi7qfF73nV7/Ac8rdloXeTkWoW5blsZ7fvuRt/bz3vSLUL+c55f7S5vl0YeeUu21KYt87sy+204Wb05nb8VJ6jShqnTkVz5zy43WAPfPDVBdCmzZttHGj+585Nm3apKpVq17QPgAAAHBx8DrA9unTpyT6yNfjjz+uK6+8Ui+99JLuvPNO/fbbb5o8ebImT558QfsAAADAxeG8vshg48aN+vXXX3Xs2LFzDy6iFi1a6IsvvtDHH3+s+vXra+zYsZo4caJ69+5dYvcJAACAi1eRAuz777+v2NhY1atXT9dcc43rT/x33nmnpkyZUqwNStJNN92kNWvW6OTJk1q/fn2Bl9ACAADApc3rAPvpp5+qb9++atq0qSZNmuT2qbOmTZvqk08+KdYGAQAAgDN5HWATExN17733aubMmXrwwQfdliUkJOj3338vtuYAAACAs3kdYNevX6+77rrL47KIiAilpqaed1MAAABAfrwOsGXKlHH7FoYz7dmzR+XKlTvvpgAAAID8eB1g27Rpk+fc11xJSUlq165dcfQFAAAAeOT1dWBHjBihq666Si1btlSvXr1kWZZmzJihkSNHasGCBfrtt99Kok8AAABAUhGOwDZv3lzffPONjh49qqFDh8oYo5deekmbNm3S119/rfr165dEnwAAAICkIhyBlaRrr71W69ev15YtW/Tnn38qKipKderUKe7eAAAAgDyKFGBz1axZUzVr1iyuXgAAAIBzKtI3cW3fvl39+/dXnTp1FBkZqTp16qh///7atm1bcfcHAAAAuPE6wK5cuVJNmjRRUlKSKleurI4dO6py5cpKSkpSkyZNtHLlyhJoEwAAADjN61MIBg8erOjoaH3//feqUqWKq75jxw5df/31evzxxzVv3rxibRIAAADI5fUR2N9++02jR492C6+SVLVqVY0aNUpLliwptuYAAACAs3kdYMPCwhQWFuZxWXh4uEJDQ8+7KQAAACA/XgfYXr166d133/W4bMqUKerZs+d5NwUAAADkp1DnwM6YMcP1/82aNdNnn32mli1bqmfPnqpYsaL279+vjz/+WAcOHNAdd9xRYs0CAAAAhQqwt99+uyzLkjHG9d9du3Zp2bJlecbefffd6tWrV7E3CgAAAEiFDLBcVQAAAAAXi0IF2LZt25Z0HwAAAEChFOmbuAAAAABf8fqLDCTpv//9r/7zn/9ox44dOnnypNsyy7K0atWqYmkOAAAAOJvXAXb8+PF66qmnFB0drVq1aik4OLgk+gIAAAA88jrAvv3227rvvvv0z3/+Uw6HoyR6AgAAAPLl9Tmwqamp6tWrF+EVAAAAPuF1gG3Tpo3Wr19fEr0AAAAA5+T1KQQTJ07ULbfcori4ON1www0KCAgoib4AAAAAj7wOsLVq1VKHDh10yy23yLIslSlTxm25ZVlKT08vtgYBAACAM3kdYIcNG6ZJkyapcePGSkhI4AgsAAAALiivA2xSUpKeeuopJSYmlkQ/AAAAQIG8/hBXTk6Orr/++pLoBQAAADgnrwNsx44dtXjx4pLoBQAAADgnr08heP7559WjRw8FBwerS5cuioiIyDPGUw0AAAAoDl4H2EaNGkmShgwZoiFDhngck5OTc35dAQAAAPnwOsCOGDFClmWVRC8AAADAOXkdYEeNGlUCbQAAAACF4/WHuAAAAABf8voI7JgxYwpcblmWnn/++SI3BAAAABSk2E8hIMACAACgJHl9CoHT6czzLyUlRe+++67q16+v7du3l0CbAAAAwGnFcg5sRESE7rvvPvXq1UsDBw4sjlUCAAAAHhXrh7hatmypH374oThXCQAAALgp1gC7atUqlS1btjhXCQAAALjx+kNc77//fp5aZmamVq9erffee09///vfi6UxAAAAwBOvA2zfvn091kuXLq2///3vevXVV8+3JwAAACBfXgfYbdu25amVLl1aFSpUKJaGAAAAgIJ4HWCrVq1aEn0AAAAAhcJXyQIAAMBWCnUEtmHDhoVeoWVZWrVqVZEbAgAAAApSqAAbEREhy7IKHHP06FEtX778nOMAAACA81GoADt//vx8l2VnZ2vy5MkaM2aMLMtSr169iqs3AAAAII/zOgf2008/Vb169fTYY4+pUaNGWr58uT744IPi6g0AAADIo0gBdv78+briiivUo0cPhYaG6rvvvtO3336rxo0bF3N7AAAAgDuvAuyaNWt04403qn379kpNTdVHH32kZcuWqX379iXVHwAAAOCmUAF2165d6tOnj5o2barly5dr4sSJWr9+ve66666S7g8AAABwU6gPcdWpU0dZWVm64YYbNGzYMIWEhGjNmjX5jm/atGmxNQgAAACcqVABNjMzU5L0zTffaM6cOfmOM8bIsizl5OQUT3cAAADAWQoVYKdOnVrSfQAAAACFUqgA26dPn5LuAwAAACiU87oOLAAAAHChEWABAABgKwRYAAAA2AoBFgAAALZiuwCbmJgoy7I0ePBgX7cCAAAAH7BVgF26dKkmT56shg0b+roVAAAA+IhtAuzRo0fVu3dvTZkyReXKlfN1OwAAAPCRQl0H9mLwyCOPqEuXLurQoYNeeOGFAsdmZma6vj1MkjIyMiRJ2dnZys7OliT5+fnJz89PTqdTTqfTNTa3npOTI2PMOesOh0OWZbnW6/K/MZZxupctP891P4dkjHvdsk6Pz7fulHVGL8aypALqlnG6+nL1Yln5153u36iWb+8X0ZycTqdX28nhcEhSnm+Py6/u7+8vY4xb3bIsORyOPPtSfvWS3veYk5dzMk6eTz6YU3Z2donte5Yzh+3kgzllZ2dfmq8RzOmCzSlPliqALQLstGnTtGLFCi1durRQ4xMTEzV69Og89eTkZAUHB0uSoqOjVbNmTW3btk0HDx50jYmNjVVsbKw2bdqk9PR0V71GjRoqX7681q5dqxMnTrjq8fHxCg8PV3JystsG8XfEKcfPX5VTNrr1sCeqrhzObFU8tMVVM35+2hMVr9Knjinq8E5XPds/UPsjair45GGVO7LPVT8ZEKyU8KoKPZ6q0GN/9X4sKFxpIZVU7uh+BZ847KpnBEcrIzhakem7VDrrmKueFhKjY0HlVCFtm/yz/wr8KeFVdDKgrCod+kPWGTvw/oiaF/2cUlIsr7ZTw4YNFRAQoGXLlrnNqXnz5srKytLq1atdNYfDoRYtWig9PV0bNmxw1YOCgtSoUSOlpKRo69atrnpYWJgSEhK0d+9e7d6921Uv6X2POXk3p8gTpXg++WBOyclBJbbvVU7PYjv5YE7LlgVckq8RzOnCzSk5OVmFZZkzI/NFaNeuXWrevLm+++47NWrUSJLUrl07NW7cWBMnTvR4G09HYOPi4pSamqrQ0FBJJf8u49XVaZJ4136h5/Rkk2je4TInr+b02upDPJ98MKehjSJLbN97bVUq28kHcxraKPKSfI1gThduTmlpaYqMjFR6erorr+Xnoj8Cu3z5ch04cEDNmjVz1XJycrRgwQJNmjRJmZmZronnCgwMVGBgYJ51+fv7y9/ffcq5D/7Zzl7nuepnr1eWJUkylufxHuuW5WXdT8bysPJ86qdfzLyo+3nRe371Czyn3G1Z6O1UhLplWR7r+e1L3tbPe98rQv1ynlPuL22eTxd2TrnbpiT2vTP7YjtduDmduR0vpdeIotaZU/HMKT8XfYBt37691qxZ41a79957FR8fr6eeeirfBw0AAACXpos+wIaEhKh+/fputeDgYEVGRuapAwAA4NJnm8toAQAAAJINjsB6Mn/+fF+3AAAAAB/hCCwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAAgAAwFYu+gCbmJioFi1aKCQkROXLl9fNN9+sjRs3+rotAAAA+MhFH2B/+uknPfLII1q8eLHmzp2r7OxsdezYUceOHfN1awAAAPABf183cC5z5sxx+3nq1KkqX768li9frmuuucbjbTIzM5WZmen6OSMjQ5KUnZ2t7OxsSZKfn5/8/PzkdDrldDpdY3PrOTk5Msacs+5wOGRZlmu9Lv8bYxmne9ny81z3c0jGuNct6/T4fOtOWWf0YixL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cMMNrtfTw4cPq0qVKnr22Wddt585c6aaN2+u0qVLKyoqSrfeeqtrWVZWloYNG6bKlSsrODhYV1xxhev5VlhTp05VQkKCSpcurfj4eL399tuuZbnP6xkzZujaa69VmTJl1KhRIy1atEjS6ef0vffeq/T0dFmWJcuyNGrUqKI/WBc7g8vG4cOHzZgxY0xsbKzZt2+fOXDggPnss8/M559/bjZt2mSSk5NN165dTYMGDUxOTo4xxpht27YZSSY5OdkYY8y8efOMJJOWlua7iVzG2rZta8qWLWsGDRpkNmzYYD788ENTpkwZM3nyZGOMMf/617/M119/bbZs2WIWLVpkWrVqZTp37uy6/SOPPGIaN25sli5darZt22bmzp1rZs6caYwxZvz48SYuLs4sWLDAbN++3fz888/mo48+8sk87axt27YmJCTEjB071mzatMmMHTvW+Pn5mc6dO5vJkyebTZs2mYcffthERkaaY8eOmb1795qoqCjz9NNPm/Xr15sVK1aY66+/3lx77bWudT788MMmNjbWfPfdd2b16tXmpptucu0HuapWrWomTJhgjMn7vDXGmLS0NCPJzJs3zxjz13O5VatW5pdffjErVqwwtWrVMm3btjUdO3Y0K1asMAsWLDCRkZFm3LhxF+CRu3Tcf//9pmrVqub77783a9asMbfccosJCQlxba9u3bqZhIQEs2DBArNy5UrTqVMnU6tWLZOVlWWMMWbZsmXGz8/PjBkzxmzcuNFMnTrVBAUFmalTp7ruo3PnzqZ+/fpm4cKFZtmyZebKK680QUFBrn0Anj3zzDMmPj7ezJkzx2zZssVMnTrVBAYGmvnz55vdu3ebcuXKmYkTJxpjjOnRo4dp3ry5a7t89dVXxuFwmBEjRpjff//drFy50rz44ouudffq1ctceeWVZsGCBWbz5s1m/PjxJjAw0GzatMkYY8zUqVNNWFiYa/zIkSNNo0aNXD9PnjzZxMTEmM8//9xs3brVfP755yYiIsIkJSUZY/56XsfHx5uvvvrKbNy40dx+++2matWq5tSpUyYzM9NMnDjRhIaGmn379pl9+/aZI0eOlPAj6jsE2MvMhAkTTNWqVfNdfuDAASPJrFmzxhhDgL3YtG3b1iQkJBin0+mqPfXUUyYhIcHj+N9++81Icr2Ide3a1dx7770exz722GPmuuuuc1s3vNe2bVtz1VVXuX7Ozs42wcHB5u6773bV9u3bZySZRYsWmeeff9507NjRbR27du0ykszGjRvNkSNHTEBAgJk2bZpreWpqqgkKCiqWAPv999+7xiQmJhpJZsuWLa5a//79TadOnc7nIbmsZGRkmFKlSplPP/3UVTt8+LApU6aMGTRokNm0aZORZH799VfX8pSUFBMUFGQ++eQTY8zpIHT99de7rffJJ5809erVM8YYs3HjRiPJLF682LV8/fr1RhIBtgBHjx41pUuXNgsXLnSr9+vXz/Ts2dMYY8wnn3xiAgMDzdNPP23KlCljNm7c6BrXunVr07t3b4/r3rx5s7Esy+zZs8et3r59e/P0008bY84dYOPi4vIcNBg7dqxp3bq1Meav5/W7777rWr5u3Tojyaxfv97jfVzKOIXgMrdlyxb16tVLNWrUUGhoqKpXry5J2rlzp487Q35atWoly7JcP7du3Vp//PGHcnJylJycrO7du6tq1aoKCQlRu3btJP21PR9++GFNmzZNjRs31rBhw7Rw4ULXevr27auVK1eqbt26GjhwoL777rsLOq9LScOGDV3/73A4FBkZqQYNGrhqFSpUkHT6z8DLly/XvHnzVLZsWde/+Ph4Saefn1u2bFFWVpZat27tun1ERITq1q1b7L1WqFBBZcqUUY0aNdxqZ56GgoJt3bpVp06dUsuWLV21sLAw1/Zav369/P39dcUVV7iWR0ZGqm7dulq/fr1rTJs2bdzW26ZNG9fzPHcdzZs3dy2Pj493+4Q78vr999918uRJXX/99W7Pt/fff9916twdd9yhW2+9VYmJiXrttddUp04d1+1Xrlyp9u3be1z3ihUrZIxRnTp13Nb9008/uZ2Wl5+DBw9q165d6tevn9vtX3jhhTy3P/M5GxMTI0mX5XOUD3Fd5rp27aq4uDhNmTJFlSpVktPpVP369ZWVleXr1uClkydPqmPHjurYsaM+/PBDRUdHa+fOnerUqZNre3bu3Fk7duzQ7Nmz9f3336t9+/Z65JFH9Oqrr6pp06batm2bvvnmG33//fe688471aFDB3322Wc+npn9lCpVyu1ny7LcarlvQJxOp5xOp7p27aqXX345z3piYmLynBtZGH5+p49NmDO+KfzUqVPn7PXsPnNrTqfT6x4uV7mP+ZlvMs+sm3y+vd0Y47rNmf9/9u0Lug8ULHc/nj17tipXruy2LDAwUJJ0/PhxLV++XA6HI89zLygoqMB1OxwO123PVLZs2UL3NmXKFLc3N5LyrC+/15LLDUdgL2Opqalav369nnvuObVv314JCQlKS0vzdVs4h8WLF+f5uXbt2tqwYYNSUlI0btw4XX311YqPj/f4rjw6Olp9+/bVhx9+qIkTJ2ry5MmuZaGhoerRo4emTJmi6dOn6/PPP9ehQ4dKfE6Xs6ZNm2rdunWqVq2aatWq5fYvODhYtWrVUqlSpdy2e1pamjZt2pTvOnOvSLBv3z5XjQ9iXhg1a9ZUqVKl9Ntvv7lqGRkZrjBUr149ZWdna8mSJa7lqamp2rRpkxISElxjfvnlF7f1Lly4UHXq1JHD4VBCQoKys7O1bNky1/KNGzdeFpdOOh/16tVTYGCgdu7cmee5FhcXJ0kaOnSo/Pz89M033+jNN9/Ujz/+6Lp9w4YN9cMPP3hcd5MmTZSTk6MDBw7kWXdhruRToUIFVa5cWVu3bs1z+9y/jBZGQECAcnJyCj3ezjgCexkrV66cIiMjNXnyZMXExGjnzp0aPny4r9vCOezatUtDhgxR//79tWLFCr311lt67bXXVKVKFQUEBOitt97SQw89pLVr12rs2LFutx0xYoSaNWumv/3tb8rMzNRXX33l+qU5YcIExcTEqHHjxvLz89Onn36qihUr8mfJEvbII49oypQp6tmzp5588klFRUVp8+bNmjZtmqZMmaKyZcuqX79+evLJJxUZGakKFSro2WefdR1l9SQoKEitWrXSuHHjVK1aNaWkpOi55567gLO6fIWEhKhPnz568sknFRERofLly2vkyJHy8/OTZVmqXbu2unfvrgceeED//Oc/FRISouHDh6ty5crq3r27pNMhqkWLFho7dqx69OihRYsWadKkSa5PpNetW1c33HCDHnjgAU2ePFn+/v4aPHhwgUcIcXrbPPHEE3r88cfldDp11VVXKSMjQwsXLlTZsmUVFRWl9957T4sWLVLTpk01fPhw9enTR6tXr1a5cuU0cuRItW/fXjVr1tRdd92l7OxsffPNNxo2bJjq1Kmj3r1765577tFrr72mJk2aKCUlRT/++KMaNGigG2+88Zz9jRo1SgMHDlRoaKg6d+6szMxMLVu2TGlpaRoyZEih5litWjUdPXpUP/zwgxo1aqQyZcqoTJky5/vQXZQ4AnsZ8/Pz07Rp07R8+XLVr19fjz/+uMaPH+/rtnAO99xzj06cOKGWLVvqkUce0WOPPaYHH3xQ0dHRSkpK0qeffqp69epp3LhxevXVV91uGxAQoKeffloNGzbUNddcI4fDoWnTpkk6/Weul19+Wc2bN1eLFi20fft2ff311wUGJZy/SpUq6ddff1VOTo46deqk+vXra9CgQQoLC3M99uPHj9c111yjbt26qUOHDrrqqqvUrFmzAtf73nvv6dSpU2revLkGDRqkF1544UJMB5Jef/11tW7dWjfddJM6dOigNm3auC6NJJ2+VFKzZs100003qXXr1jLG6Ouvv3b9abhp06b65JNPNG3aNNWvX18jRozQmDFj1LdvX9d9TJ06VXFxcWrbtq1uvfVWPfjggypfvrwvpmsrY8eO1YgRI5SYmKiEhAR16tRJs2bNUrVq1dSvXz+NGjVKTZs2lSSNHDlSlSpV0kMPPSTp9CXyPv30U82cOVONGzfWdddd53YkferUqbrnnns0dOhQ1a1bV926ddOSJUtcR3fP5f7779e7776rpKQkNWjQQG3btlVSUpJXR2CvvPJKPfTQQ+rRo4eio6P1yiuvePHo2Itl8jshB8BFp127dmrcuDFfFwnYyLFjx1S5cmW99tpr6tevn6/bAS4JnEIAAEAxSk5O1oYNG9SyZUulp6drzJgxkuQ6RQDA+SPAAgBQzF599VVt3LhRAQEBatasmX7++WdFRUX5ui3gksEpBAAAALAVPp0BAAAAWyHAAgAAwFYIsAAAALAVAiwAAABshQALAAAAWyHAArhsLVmyRLfccouqVKmiwMBAVahQQa1bt9bQoUN93RoAoABcRgvAZWn27Nnq1q2b2rVrpwceeEAxMTHat2+fli1bpmnTpmn37t2+bhEAkA8CLIDLUtu2bbVnzx5t2LBB/v7u3+nidDrl53fh/kB1/PhxlSlTxjbrBQBf4xQCAJel1NRURUVF5QmvkjyG148++kitW7dW2bJlVbZsWTVu3Fj/+te/3Ma89957atSokUqXLq2IiAjdcsstWr9+vduYvn37qmzZslqzZo06duyokJAQtW/fXpKUlZWlF154QfHx8QoMDFR0dLTuvfdeHTx48JzzKWi9c+fOVffu3RUbG6vSpUurVq1a6t+/v1JSUtzWMWrUKFmWpXXr1qlnz54KCwtThQoVdN999yk9Pd1t7OHDh9WvXz9FRESobNmy6tKli7Zu3SrLsjRq1Ci3sX/88Yd69eql8uXLKzAwUAkJCfq///u/c84JAPJDgAVwWWrdurWWLFmigQMHasmSJTp16lS+Y0eMGKHevXurUqVKSkpK0hdffKE+ffpox44drjGJiYnq16+f/va3v2nGjBl64403tHr1arVu3Vp//PGH2/qysrLUrVs3XXfddfryyy81evRoOZ1Ode/eXePGjVOvXr00e/ZsjRs3TnPnzlW7du104sSJc87J03olacuWLWrdurXeeecdfffddxoxYoSWLFmiq666yuO8b7vtNtWpU0eff/65hg8fro8++kiPP/64a7nT6VTXrl310Ucf6amnntIXX3yhK664QjfccEOedf3+++9q0aKF1q5dq9dee01fffWVunTpooEDB7r6AwCvGQC4DKWkpJirrrrKSDKSTKlSpcyVV15pEhMTzZEjR1zjtm7dahwOh+ndu3e+60pLSzNBQUHmxhtvdKvv3LnTBAYGml69erlqffr0MZLMe++95zb2448/NpLM559/7lZfunSpkWTefvvtAueT33rP5nQ6zalTp8yOHTuMJPPll1+6lo0cOdJIMq+88orbbQYMGGBKly5tnE6nMcaY2bNnG0nmnXfecRuXmJhoJJmRI0e6ap06dTKxsbEmPT3dbeyjjz5qSpcubQ4dOlRgvwDgCUdgAVyWIiMj9fPPP2vp0qUaN26cunfvrk2bNunpp59WgwYNXH9enzt3rnJycvTII4/ku65FixbpxIkT6tu3r1s9Li5O1113nX744Yc8t7ntttvcfv7qq68UHh6url27Kjs72/WvcePGqlixoubPn1+oeZ29Xkk6cOCAHnroIcXFxcnf31+lSpVS1apVJSnPKQ6S1K1bN7efGzZsqJMnT+rAgQOSpJ9++kmSdOedd7qN69mzp9vPJ0+e1A8//KBbbrlFZcqUcZvXjTfeqJMnT2rx4sWFmhcAnCnvyV8AcBlp3ry5mjdvLkk6deqUnnrqKU2YMEGvvPKKXnnlFdf5p7GxsfmuIzU1VZIUExOTZ1mlSpU0d+5ct1qZMmUUGhrqVvvzzz91+PBhBQQEeLyPs89X9cTTep1Opzp27Ki9e/fq+eefV4MGDRQcHCyn06lWrVp5PDUhMjLS7efAwEBJco1NTU2Vv7+/IiIi3MZVqFDB7efU1FRlZ2frrbfe0ltvvVXkeQHA2QiwAPA/pUqV0siRIzVhwgStXbtWkhQdHS1J2r17t+Li4jzeLjfw7du3L8+yvXv3Kioqyq1mWVaecVFRUYqMjNScOXM83kdISMg5+/e03rVr12rVqlVKSkpSnz59XPXNmzefc335iYyMVHZ2tg4dOuQWYvfv3+82rly5cnI4HLr77rvzPYJdvXr1IvcB4PJFgAVwWdq3b5/HI6a5f1KvVKmSJKljx45yOBx655131Lp1a4/rat26tYKCgvThhx/qjjvucNV3796tH3/8Ubfffvs5+7nppps0bdo05eTk6IorrijKlDzKDbW5R1Fz/fOf/yzyOtu2batXXnlF06dP18MPP+yqT5s2zW1cmTJldO211yo5OVkNGzbM9+gyAHiLAAvgstSpUyfFxsaqa9euio+Pl9Pp1MqVK/Xaa6+pbNmyGjRokCSpWrVqeuaZZzR27FidOHHCdXmp33//XSkpKRo9erTCw8P1/PPP65lnntE999yjnj17KjU1VaNHj1bp0qU1cuTIc/Zz11136T//+Y9uvPFGDRo0SC1btlSpUqW0e/duzZs3T927d9ctt9zi9Tzj4+NVs2ZNDR8+XMYYRUREaNasWXlOa/DGDTfcoDZt2mjo0KHKyMhQs2bNtGjRIr3//vuS3C9D9sYbb+iqq67S1VdfrYcffljVqlXTkSNHtHnzZs2aNUs//vhjkfsAcPkiwAK4LD333HP68ssvNWHCBO3bt0+ZmZmKiYlRhw4d9PTTTyshIcE1dsyYMapdu7beeust9e7dW/7+/qpdu7YGDhzoGvP000+rfPnyevPNNzV9+nQFBQWpXbt2eumll1S7du1z9uNwODRz5ky98cYb+uCDD5SYmCh/f3/Fxsaqbdu2atCgQZHmWapUKc2aNUuDBg1S//795e/vrw4dOuj7779XlSpVirROPz8/zZo1S0OHDtW4ceOUlZWlNm3a6MMPP1SrVq0UHh7uGluvXj2tWLFCY8eO1XPPPacDBw4oPDxctWvX1o033lik+wcAvokLAFAsPvroI/Xu3Vu//vqrrrzySl+3A+ASRoAFAHjt448/1p49e9SgQQP5+flp8eLFGj9+vJo0aeK6zBYAlBROIQAAeC0kJETTpk3TCy+8oGPHjikmJkZ9+/bVCy+84OvWAFwGOAILAAAAW+GbuAAAAGArBFgAAADYCgEWAAAAtkKABQAAgK0QYAEAAGArBFgAAADYCgEWAAAAtkKABQAAgK38P2kGlJcVsbWYAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "及格率：60.00%\n",
      "平均分：60.63\n",
      "\n",
      "单题得分分析：\n",
      "选择题1 - 平均分: 1.13, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题2 - 平均分: 1.27, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题3 - 平均分: 0.93, 最高分: 2, 最低分: 0, 类型: 选择题（较难）\n",
      "选择题4 - 平均分: 1.47, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题5 - 平均分: 1.07, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题6 - 平均分: 1.33, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题7 - 平均分: 1.33, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题8 - 平均分: 1.07, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题9 - 平均分: 1.47, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "选择题10 - 平均分: 1.13, 最高分: 2, 最低分: 0, 类型: 选择题（较易）\n",
      "简答题1 - 平均分: 5.63, 最高分: 9, 最低分: 0, 类型: 简答题（较易）\n",
      "简答题2 - 平均分: 5.50, 最高分: 10, 最低分: 0, 类型: 简答题（较易）\n",
      "简答题3 - 平均分: 5.40, 最高分: 9, 最低分: 1, 类型: 简答题（较易）\n",
      "简答题4 - 平均分: 6.73, 最高分: 10, 最低分: 2, 类型: 简答题（较易）\n",
      "简答题5 - 平均分: 6.13, 最高分: 10, 最低分: 0, 类型: 简答题（较易）\n",
      "编程题1 - 平均分: 9.23, 最高分: 15, 最低分: 0, 类型: 其他题（较难）\n",
      "编程题2 - 平均分: 9.80, 最高分: 15, 最低分: 1, 类型: 其他题（较难）\n",
      "选择题总分 - 平均分: 12.20, 最高分: 20, 最低分: 2, 类型: 其他题（较易）\n",
      "简答题总分 - 平均分: 29.40, 最高分: 46, 最低分: 10, 类型: 其他题（较易）\n",
      "编程题总分 - 平均分: 19.03, 最高分: 29, 最低分: 5, 类型: 其他题（较易）\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwsAAAH5CAYAAADOY6KBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACGeUlEQVR4nO3dd3hUddrG8e+k905IQiD03ntRAUUBlWLFsijYFRFXXV/riusqunbXtStYwV5RUJFiAQQRQZr0HlIgvc7Mef8YEwmZ9MmcSeb+XFcuyMyZc55pJ3PPr1kMwzAQERERERE5gY/ZBYiIiIiIiGdSWBAREREREacUFkRERERExCmFBRERERERcUphQUREREREnFJYEBERERERpxQWRERERETEKYUFERERERFxSmFBREREREScatSw0LZtW9q2bduYh6iVadOmYbFY2LNnj9mlNLpt27YxadIkWrZsicVi8YjHX6Qmo0aNwmKxVLhs3rx5WCwW5s2bZ0pNFouFUaNGVbjM7HPJsmXLsFgszJ4925TjO3Po0CH+9re/0apVK3x8fCo9j82ds9eumMfs84a3M/P90BSe+z179mCxWJg2bZrZpdRJncJC2Z08/icgIIDWrVtzySWXsGHDhsaqs0lz1wvYZrNxzjnnsHjxYiZOnMh9993HzTff3KjHFPFUnvJlRV05CymebNq0abzzzjuMHj2ae++9l/vuu8/skqQZa2oftsz+gqG5aWrnx+bCrz436tChA3/7298AyMvLY9WqVcyfP5+PPvqI7777juHDhwOwZMkS11UqNdq9ezdbtmzh2muv5YUXXjC7HJEGOeeccxg6dCiJiYmmHH/Lli2EhISYcuyqDB48mC1bthAXF2d2KQCUlJSwZMkSzjjjDN566y2zyzHFG2+8QUFBgdllyJ/MPm94O70fmqd6hYWOHTtWaga/5557ePDBB7n77rtZunQp4AgV4j6HDh0CICEhweRKRBouMjKSyMhI047ftWtX045dlZCQEI+qKzU1Fbvd7tXnnDZt2phdghzH7POGt9P7oXly2ZiFmTNnArBmzZryy6rqBmAYBq+99hojRowgIiKCkJAQBg4cyGuvvVbn43722WeMHTuW2NhYgoKCaNu2LVOnTuX33393uv1zzz1Ht27dCAoKIiUlhfvvvx+73V5hm+zsbB555BFGjhxJUlIS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Vau48MILCQoK4qOPPuL2229nx44dvPjii7Xax4natm3Lfffdx/33309KSkqFD8k1vY/r89ooLS3ljDPO4OjRo5x77rkUFBSwYMECLrzwQhYtWsQZZ5xR7TGnTZtG3759efrpp+nTpw+TJ08G/nqM63L+Ot7MmTNZtWoVZ511FmeffXb569WZc889l+uvv563336be++9t9L1ZV2jpk6dWn7ZI488wo4dOxg6dCjnnHMOWVlZLFq0iGuvvZZt27bx+OOPV9pPZmYmw4YNIyYmhilTplBSUlL+HnbGMAymTJnCRx99ROfOnZkxYwb5+fm89957nH322Tz99NPcdNNNVd6+Jp7yfqxJXc7/zz//PDfccAOJiYmcc845xMbGcvjwYX7++Wc++eQTJk+eTN++fZk1a1al1xxQ4/ikDz/8kIsuuoiAgIDyUP3tt99y//338/XXX7N06VICAwMr3CYrK6v8S81LL72UtLQ03n33XcaOHcsvv/xS6TPGiW6++WbmzZvHb7/9xqxZs4iKiiqvNTw8nIsvvpiXX36Zn376qbz7dpmFCxdy+PBhbr311kp/Ix9//HGWLVvGlClTOPvss/nyyy95+OGH+fXXX/nqq68qfB5z93m+Op9//jlffPEFEyZM4Prrr2fFihW88cYb7Ny5kx9++KHa29bl/FiX49Tl8anOypUrGT9+PDk5OYwdO5aLLrqIY8eO8euvv/L000/XOMbm5Zdf5vPPP+eUU07hzDPPpKCggGXLlnHnnXeyZs0aPvzww/JtDx06xODBg8nPz+ess85iypQp5OXlsX37dv773/+Wn8Pq8lmkRkYd7N692wCMsWPHVrru7rvvNgBj1KhR5ZelpKQYKSkpFbZ76aWXDMC48sorjdLS0vLLi4uLjQkTJhiAsXbt2hprWbhwoQEYvXr1MjIyMipcV1paaqSmppb/fvnllxuA0a5dO+PQoUPll6enpxtRUVFGeHi4UVxcXH55VlaWkZmZWemY3333neHj42NcddVVFS6/7777DMAIDQ01NmzYUOl2c+fONQBj7ty5Nd6v411xxRUGYNx5550VLl+0aJEBGJ06dTJsNlv55UuXLjUA47777qv1MQ4cOFDhvpe5//77DcB46623yi/LyckxgoODje7du1fa/oMPPjAA45577im/bNOmTYafn5/Rr1+/So/nnDlzDMB47LHHKtUPGK+++qrTenft2lXpskOHDhlJSUlGp06dKlz+7bffGoAxcOBAo6CgoPzyw4cPGwkJCQZgXH755RVuM3z4cMPPz8/4+uuvK1y+bds2Izw83OjVq5fTuo732WefGYDx97//vdJ1OTk5FR7vf/zjHwZgTJ061bBarRW2zcrKMnJzcw3DMAybzWZ06tTJAIxFixZV2O7OO+8sf08dLyUlxQCMM844o8L9NwzDyMjIMCIiIozk5GRj7969Fa575513DMC48cYbyy8799xzDcD47bffKt2nE99/zthsNqN9+/aGxWIxvv/++/LL7Xa7cckll5Q/78dz9r655ZZbDMD49NNPa6zD2fmnTG1ea4AxcuTICpeVnUtatmxpHDx4sPzy3Nxco1evXgZgrFixotr7cGINJ75fnR23uts05LUxadKkCq/HsveMs3O8M2V/E058HxlG3c9fZY+ts9dkdS699FIDMH7++ecKl5eUlBixsbFG69atDbvdXn65s3NIaWmpcfrppxu+vr6Vjl32Opk+fXql96hhGMbIkSMrvXbfeOON8ufx+Md3//79Rnx8vOHv71+hjrK/IUuXLq20f2evITPej2XPz+7duyvtz1n9dT3/9+/f3wgICDDS0tKqvU/VveYMw/njlZOTY0RFRRmBgYEVHrPj7+8DDzxQYT9lj8ENN9xQ4XX6yiuvGIBx7bXXOj3+iap73NasWVP+2jrRxIkTDcDYsmVL+WVlj3NQUJDx+++/l19e9voFjDfeeKP8cnef5w3D+fuh7Dnx8/Mzfvjhh/LLrVarMWrUKAMwVq5cWav9V3d+rOtx6vr4VKWoqMho3bq14ePjY3z11VeVrt+/f3/5/6t6/e7Zs6fS+cVut5efR4+/P88884wBGE8//XSlY6Wnp5f/vy6fRWpSr25IO3bsYPbs2cyePZvbbruNk046iQcffJCgoCAeeuiham/77LPPEhoayrPPPouf318NGwEBAeXf7s+fP7/GGv73v/8B8PTTT1f6xszPz8/pt1H33ntvhUFPcXFxTJo0idzcXLZt21Z+eWRkJDExMZVuP3r0aHr06MG3337rtKZrrrmGXr161Vh7bZSUlDB//nxiY2O55557Klw3duxYxo4dy/bt2/npp58adJxWrVpV+tYC4MYbbwSocF/Dw8OZOHEimzdv5tdff62wfdk3eGUD3wFefPFFrFYrzzzzTKXH8/bbb6dFixZOn+t+/fpxxRVXOK23rAn6eImJiZx33nls376dvXv3Vqrp3nvvJTg4uPzyhIQEZs2aVWk/v/76Kz/99BOXX345p59+eoXrOnfuzNVXX83GjRtr3R3p+GOWCQ8PL3+8bTYbL774IpGRkTz99NP4+vpW2DYyMpKwsDDA0Z1i+/btjB8/nrFjx1bY7u677yY2NpZ33nmnvLn6eI8++milWt544w1ycnKYM2dOpT6mF198Mf3792fBggW1uk8nvv+c+eGHH9i1axdnn312hZYni8XCQw89VOm+16S+dZyoutdadW666SaSkpLKfw8LC+Of//wnQHm3A3dpyGvjySefrPD+P+2000hJSanQnbQ+GnL++sc//lGnfs9l55wTB1h/+eWXZGZmcumll1b4ptXZOcTPz4/rrrsOm83mtEtjQEAA//nPf2r9Oi3rdvCf//ynwuObnJzM3//+d0pLS3n77bdrta/qeMr70Zn6nP/9/f3LW7KPV5/39vE++eQTsrKyuOKKK+jdu3f55RaLhYcffrhS98wyoaGhPPLII/j4/PVR6fLLL8fPz6/B7xGAgQMH0r9/f9577z1yc3PLL09NTeXLL7/kpJNOcjpGaerUqRW6L/n5+ZV/9jr+/OPu83xNLrnkEkaMGFH+u6+vL5dffjmASx7Puh6nvo/PiT777DP279/P3/72N8aNG1fp+uTk5Br3kZKSUul9Z7FYmDFjBoDTz53Onidnk1/U9FmkNurVDWnnzp3cf//9gOPN3bJlSy655BLuuOOOaj8sFxQUsHHjRpKSksr7Fx+vrF/W1q1ba6zh559/JjAwsLyffm3079+/0mVlT2JWVlaFy5ctW8ZTTz3F6tWrycjIwGq1ll9X1QM8ePDgWtdSk61bt1JYWMioUaOczsgyatQoFi9ezPr16yuc7OvKMAzmzp3LvHnz+P3338nOzq7Q77ps0HSZqVOn8u677/LWW2/Rr18/AI4ePcqXX37JoEGD6NKlS/m2q1atAmDRokVOX+j+/v5On+vqHsddu3YxZ84cvvvuOw4ePEhxcXGF6w8dOlTeRey3334DqNS8W9VlZfWmpqY67RNeVuvWrVurbX4+5ZRTSEhIYM6cOaxfv56zzjqLk046iV69elX40LJ161ZycnIYM2ZMjc2cZeHMWR/60NBQBg4cyOLFi/njjz8q1BYUFOT0PVl2X1etWsWOHTsqXV9UVERGRgYZGRnExcVx4YUX8tFHHzFkyBAuvvhiTj31VE4++WTi4+OrrbtM2XNx8sknV7ouJSWF1q1b12pqwfPPP5+nnnqKyZMnc+GFF3L66adz0kkn1XtQXX3fs87uR9ll69evr9c+66u+r42oqCinH5yTk5Or7KZXWw05f9X1OTn99NNJSEhgwYIFPPHEE+V/cN98802gYhckgNzcXB577DE++eQTdu7cSX5+foXrTzzngSNg1GUGql9//ZXg4GCn96XseWrI68RT3o/Vqev5/8ILL+SOO+6gZ8+eXHTRRYwaNYqTTjqpvOtOQ1T3HmndujUdOnRg27Zt5eMIynTq1Kn8C5syZV9GnviZob6uvfZarr32WubPn88111wDOMKm1WqtstuPs+dt4MCBBAcHV3hdufs8X5O6fAZzx3Hq+vhU5eeffwaosetmdUpKSnj22WdZsGABW7duJS8vD8Mwyq8//rx09tlnc8cddzBjxgy++eYbxo0bx0knnUTnzp0r7LO2n0Vqo15hYezYsSxatKjOtzt27BiGYXDw4MHysOHMiSdvZ7KyssoXAaotZzMklLVu2Gy28svef/99pkyZQlhYGGPHjqVt27aEhISUD6Q5/tvr41XXt7auygaeVLXPstlHsrOzG3Scm266iWeffZbWrVszceJEEhMTy/tt3n///ZU+jI8dO5b4+Hjmz5/Po48+io+PD++99x4lJSWV/iiXDaw8fjxIbVR1n3fs2MHgwYPJyclh9OjRTJgwgYiIiPLBhsuXL69Qb05ODj4+Pk6/EXF2jLJ6Fy5c6HQQYpmaXp+RkZGsXLmS++67j88//5wvv/wScJys7rzzTm644Qbgr5NWq1atqt1f2X2pqm6o+vUQHx/v9KRQdl/LWuiqkp+fT1xcHFOmTMHf35+nnnqKF198keeee658oN4TTzxRY5/6srqq+qPTsmXLWn04GTZsGN999x1z5sxh/vz55d8GDhgwgEcffZTRo0fXuI8Tj1sfzu5HfHw8Pj4+DX5P1lV9XxtVzRjj5+dXaaC2u2qq7jZV8fX15eKLL+bJJ58s/8OZnZ3NwoUL6d+/P927dy/ftqSkhFGjRrFu3Tr69evH1KlTiY2Nxc/Pjz179vD6669XOufVp6acnBxat27t9DpXnLs95f1Ynbqe/2+//XZiY2N54YUXeOKJJ3j88cfx8/PjzDPP5KmnnnIabGurNq/Hbdu2kZOTUyEsVPceOf4zQ0Nccskl3HrrrbzyyivlYeG1114jMjKSCy64wOltqnre4uPjOXjwYPnv7j7P16S2n8EaqrbHqevjU5W6/C2vyvnnn8/nn39O586dy8fU+Pv7k5WVxdNPP13hvNSuXTtWrlzJ/fffz1dffcX7778PQJcuXXjggQfKXze1/SxSGy4b4FwbZQMpBgwYwNq1axu0r6ioqPJp++oSGGpj9uzZBAUF8csvv9CpU6cK11XXJOXKVQvLHqsjR444vb7s8loPTnEiLS2N//3vf/Tu3ZuVK1dW+AYwNTXVaaDz8/Pjoosu4plnnuG7775jzJgxvPXWW+WXO7sPJ56Aa1LV4/jkk09y7Ngx3nrrLS699NIK11133XUsX7680vHtdjuZmZmV3ujOHteyev/73/+Wd8Oqr7JZMGw2Gxs3buTrr7/mmWeeYcaMGURHR3PxxReXf2N2/Mm9KvV9PVT1WJZtt3HjxhoH6ZU599xzOffcc8nJyeGnn34qHxw/duxYtm3bVu03gGUn77S0tGrrr42RI0cycuRICgsLWb16NZ9//jnPPfccZ511Fhs3bqzTlM31fc+mpaVVaEUru8xut1f4Q1V2bjq+ZbKMq0KFO84V7qypPs/J1KlTefLJJ3nrrbcYN24c77//PkVFRZW+wPj0009Zt24dV111FS+//HKF6xYsWFBlF7K61hQREVGn+16f14m73491rbGu53+LxcJVV13FVVddRWZmJt9//z3z58/nvffeY/v27WzcuLHe3aM88T1SJiwsjEsuuYSXXnqJDRs2cPToUbZv384NN9xQ5TovVT1vaWlpFc4/7j7PNzX1eXycqcvfcmfWrFnD559/ztixY1m4cGGF1/mqVat4+umnK92md+/efPjhh5SWlvLLL7/w1Vdf8cwzz5RPVlDWDas2n0Vqw7WfsmsQHh5Ot27d2LJlS4ObnAYPHkxxcXGlD4iusHPnTrp161YpKBw6dMjp1Kk1KXvi65Kcu3btSlBQEGvWrHE6rVvZ/W5I0t+1axeGYTBmzJhKJ6UTpz893vF9hHfv3s1PP/3E2LFjadGiRYXtymYNKmvqa6iyx37ixIkVLrfb7fz444+Vtu/Tpw+A037Rzi4rq7ehXTCO5+vrS9++fbn99tvL++d+9tlngONbgIiICNasWVNpitQTlXX5cjZlX0FBAWvXriU4OLjSB9iqNOS+RkREMG7cOF566SWmTZtGWloaq1evrvY2Zc+Fs9fV3r17q5w+tTrBwcGMGjWKxx9/nLvuuovCwsIK3R18fX1d+m3V8Zzdj7LLjn9PlnUvc/ZH5MRxP2V8fHzqVLerXxuu4I7z1/H69etH9+7d+eSTT8jPz+ett94qb3E4XlXnEKj+nFefegoLC8u7JxzP2X2vz+ukjLvej3WtsSHn/9jYWCZPnsy7777LqaeeypYtW8q7idTn72l175GDBw+yc+dO2rdvX6cvtWqrNvVee+21ALzyyiu8+uqrANXOPOTseVu7di2FhYUVXlfuPs+7Q13Pj9Vx1d/8su6GX3/9db1uX3ZeOuussyoF4prOS/7+/gwdOpT777+fZ555BsMw+OKLLyptV91nkdpwa1gAR7eXgoICrr76aqfdOXbv3l2r5s+yQR+zZs2qNI+41Wqt0zeVJ0pJSWHHjh0V9lFUVMT111/v9FuVmpQN7jpw4ECtbxMQEMDFF19MRkYGc+bMqXDdt99+y1dffUXHjh0rDOKpq7K+/T/99FOFbgcHDhzgjjvuqPJ2ZWMTPvroI15++WUMw6j0DR7ADTfcgJ+fHzNnznT6xycrK6vGP4TO6j1x6rNHHnnE6aDjstaHBx54oML806mpqU6T+uDBgxkyZAjz58/n3XffrXS93W6vVTj9/fffnXZVK3s9lQ028vPz49prryU7O5tZs2ZVOgFmZ2eXr3UxYsQIOnTowFdffVWp/++cOXPIyMjg4osvrvWApenTpxMeHs7dd9/Npk2bKl1fUFBQ4Y/8kiVLnM7hXfYNl7MBVMc76aSTaNeuHV988UWF588wDO66665an/y///57p3NDn/jYguN9l5GRUeXc4w3xzDPPVOhDmpeXx7/+9S8ALrvssvLL+/fvj8ViYcGCBRXq2L59u9PXYFnddTlXuPq14QruOH+daOrUqeTn5/P000+zYsUKTj/99ErdTqo6hyxfvrxSS0NDlA2mvPPOOyvMkX7w4EGeeOIJ/Pz8KrSODhw4EHAMuDz+XLxy5UqnA6HNeD+W1XjiQOAPPvjA6Xmxruf/xYsXV/r7WlpaWv73vew+RUdHY7FY6vQemTRpEpGRkcydO7fC+c4wjPLnqKapLeurNn//+/fvz4ABA3jrrbf48MMPGTBgQHnAcebNN9+scD+sVit33XUX8NdrD9x/nneHup4fq1PXx6cqEydOJDk5mbfeeovFixdXur6mFoeqzkubNm2qdP4ER0uEs9alE/8O1vazSG24tRsSOBL0qlWreP311/nxxx8ZM2YMSUlJHDlyhK1bt7J69WreeeedGudMPvPMM7ntttt47LHH6NSpE+ecc055f70lS5Zw2223VZhfvS5mzpzJzJkz6devH+effz5Wq5VvvvkGwzDo06dP+eCw2ho2bBjBwcE89dRT5OTklH8DX90HcqB8rYN///vf/PTTTwwZMqR8nvKQkBDmzp3boC5YZbMIffjhhwwcOJDTTjuNI0eO8MUXX3Dqqaeya9euKm87depU7rnnHh577DEiIiKcflPXs2dPnnvuOa6//nq6dOnCmWeeSYcOHcjJyWHXrl0sX76cadOm8cILL9Sq3uuuu465c+dy7rnnMmXKFGJjY1m1ahXr1q3jrLPOqjTOYMyYMVx66aW8/fbb9OrVi0mTJlFcXMx7773HkCFD+Pzzzys9fvPnz2f06NFcdNFFPPXUUwwYMICgoCD27dvHypUrSU9Pr/HD57fffsutt97KiBEj6Nq1K7GxsezatYvPPvuM4ODgCl2c/vWvf7Fq1SrefPNNVq1axfjx4wkMDGTXrl0sWrSIH374gb59++Lj48O8efMYO3YsZ555JhdccAEpKSmsXr2a7777jg4dOjidNKAqZTORXHDBBfTp04dx48bRtWtXioqK2Lt3L8uXL2f48OHlY5NuvfVW9u3bx6hRo2jbti0Wi4UffviBn3/+meHDh9f4oc/Hx4eXXnqJM888kzFjxpQ3lX733XccPnyY3r17s2HDhhrrfvzxx/nmm28YPXo07du3JygoiHXr1rFkyRI6duzIOeecU77tqaeeytq1a5kwYQInn3wyAQEBnHTSSQ2aEKDMoEGD6NOnD1OmTCEwMJCPPvqIPXv2cPXVV3PKKaeUb9eqVSumTJnCggULGDBgAOPGjSMtLY2PP/6YcePGVZg7+/i633vvPc4//3z69euHr68vZ511VpWTR7j6teEqjX3+OtGll17KXXfdxezZs6v8AmPChAm0bduW//znP/z+++/07NmTbdu28cUXXzB58mSnz0d9TJ06lY8++ohPP/2U3r17c/bZZ5evs5CZmcnjjz9O+/bty7cfOnRo+XicYcOGccopp7B3714+++wzJkyYwMcff1xh/2a8HydPnky7du2YN28e+/fvp1+/fmzZsoXvvvuOM888s7w/dJm6nv+nTJlCSEgIJ510EikpKZSWlvLNN9+wefNmpkyZUj6JQVhYGIMGDWLFihVMnz6dTp064ePjwyWXXFLlRAcRERG8/PLLXHzxxQwZMoQpU6bQokULlixZwtq1axk8eDD/+Mc/avfk1tGpp57KY489xrXXXssFF1xAaGgobdq04ZJLLqmw3bXXXls+ZqGm9QzGjBnD0KFDueiii4iJieHLL7/k999/Z+zYsRVmJHT3ed4d6np+rE5dH5+qBAYG8t577zFu3DjGjx/PuHHj6NOnDzk5Oaxfv56CgoJqvxgdPHgwgwcP5r333uPw4cMMHTqUffv28dlnn3HWWWdVWijz7bff5rnnnmPUqFF07NiRiIgINm/ezJdffklcXFz5DH91+SxSo1pPsmpUv86CM9XNc/7uu+8aY8aMMaKjow1/f3+jVatWxqhRo4zHH3+8wjyxNfnwww+N0aNHG5GRkUZgYKDRtm1bY+rUqRXmIK7r/NB2u9144YUXjB49ehhBQUFGQkKCceWVVxpHjhxxOodwdXNkl1m4cKExaNAgIzg42Okc1lVJT083brrpJiMlJcXw9/c34uLijPPPP9/YuHFjpW3rs85Cbm6uceuttxpt27Y1AgMDjU6dOhkPPPCAUVJSUu18xnv27DEsFkuVc0Qf7+effzYuuugiIykpqfw+9O/f37jjjjsqzCFdm/qXLl1qjBgxwggPDzeioqKMM8880/jll1+qfA5KS0uNBx54wGjXrp0REBBgtG/f3njooYeM1atXG4Axa9asSsc4evSocc899xg9e/Y0goODjbCwMKNTp07GJZdcYnz00UfV3lfDMIzNmzcbs2bNMvr162fExsYagYGBRvv27Y1p06YZmzdvrrR9UVGR8dhjjxl9+/YtP1737t2NW2+91Th27FiFbTds2GCcf/75RlxcnOHv72+kpKQYN910k9P3THXvvzJbt241rrzySiMlJcUICAgwoqOjjV69ehk33XRThXnrFyxYYFx44YVGhw4djJCQECMyMtLo27ev8Z///MfIy8ur8TEps2LFCuOUU04xgoODjZiYGOOCCy4w9u7dW+3c3MfPl75o0SLjsssuM7p06WKEh4eXP1b33HNPpXnAc3NzjauvvtpITEw0fHx8Kry2avNac/b6LzuX7Nixw3jooYeM9u3bGwEBAUaHDh2MRx55xOk8/Pn5+cbMmTONli1bGoGBgUbv3r2Nt99+u8oaDh8+bFx44YVGXFxced1lj0F1dbvqteHsuahKTXPe1+X8Vd15urZGjx5tAEZYWJiRn5/vdJtdu3YZ5513ntGiRQsjJCTEGDRokLFgwYJ6rXthGFU/XqWlpcZjjz1m9OrVywgMDDTCw8ONkSNHOl0jxDAcj9XUqVONmJgYIzg42Bg6dKixePFip+8DM96PhuF47CZNmmSEh4cboaGhxmmnnWasWbOm2r+BtT3/P/fcc8bEiRONlJQUIygoyIiNjTWGDBlivPjiixXWZDIMx7o3Z555phEVFVX+d6js2NWtbbJixQpj/PjxRlRUlBEQEGB07tzZuPfee50+ZtU977U5tx7vP//5j9GpUyfD39+/yv3m5uYa/v7+RkhIiJGdne10P8c/zi+++KLRvXt3IzAw0EhOTjbuuOOOSuvplHHneb625/Iydf3cUt35sb7Hqe3jU5MdO3YYV155pZGcnGz4+/sb8fHxxqhRoyqsfVHVOTMtLc244oorjKSkJCMoKMjo1auX8b///c/YtWtXpe1XrVplXHvttUbPnj2NqKgoIzg42OjUqZNx0003Gfv27Svfrq6fRapjMYzj5mYS8RKvvPIKV199dfk3XyIi4jBq1CiWL1+OPh64z88//8yQIUOYPn06r732mtNtZs+ezf3338/SpUudTgMr0ljcPmZBxJ1SU1Mr/cE7ePAg//73v/H19eXss882qTIRERGHxx57DHB0txXxNG4fsyDiTg8//DALFy4sX1hm3759fPHFF+Tm5jJ79uwq50IXERFpTPv27eOdd95h06ZNvP/++4wbN86li7uKuIrCgjRr48aNY/PmzSxcuJBjx44RFBRE7969ueGGGyoNMBMREXGXXbt2ceeddxIWFsbEiRN58cUXzS5JxCmNWRAREREREac0ZkFERERERJxSWBAREREREacUFkRERERExCmFBRERERERcUphQUREREREnFJYEBERERERpxQWRERERETEKYUFERERERFxSmFBREREREScUlgQERERERGnFBZERERERMQphQUREREREXFKYUFERERERJxSWBAREREREacUFkRERERExCmFBRERERERcUphQUREREREnFJYEBERERERpxQWRERERETEKYUFERERERFxSmFBREREREScUlgQERERERGnFBZERERERMQphQUREREREXFKYUFERERERJxSWBAREREREacUFkREPNiKFSuYMGECSUlJWCwWPvnkE7NLEhERL6KwICLiwfLz8+nTpw/PPvus2aWIiIgX8jO7ABERqdr48eMZP3682WWIiIiXUsuCiIiIiIg4pbAgIiIiIiJOKSyIiIiIiIhTCgsiIiIiIuKUwoKIyHHmzJnDoEGDCA8PJz4+nsmTJ7Nt2zazyxIRETGFwoKIyHGWL1/OjBkzWLVqFd988w1Wq5UzzjiD/Px8U+rJy8tj/fr1rF+/HoDdu3ezfv169u3bZ0o9IiLiXSyGYRhmFyEi4qnS09OJj49n+fLlnHLKKW4//rJlyxg9enSlyy+//HLmzZvn9npERMS7aJ0FEZFqZGdnAxATE2PK8UeNGoW+0xEREbOoZUFEpAqGYTBp0iSOHTvG999/b3Y5IiIibqeWBRGRKtx4441s2LCBH374wexSRERETKGwICLixMyZM/nss89YsWIFycnJZpcjIiJiCoUFEZHjGIbBzJkz+fjjj1m2bBnt2rUzuyQRERHTKCyIiBxnxowZvPPOO3z66aeEh4eTmpoKQGRkJMHBwSZXJyIi4l4a4CwichyLxeL08rlz5zJt2jT3FiMiImIytSyIiBxH35+IiIj8RSs4i4iIiIiIUwoLIiIiIiLilMKCiIiIiIg4pbAgIiIiIiJOKSyIiIiIiIhTmg1JRKSZMAwDo7AQIy8PIz8fo6gIo6QEo7gYo7gYyv7/57+UlGBYrWC3g2GAYeAb24Lglm3AYgELwJ//+vqCny/4+f35r++flx33u78fBAZAYCD46rsoEZHmQGFBRKSJMIqLsWVmYhw7hj0nB3t2NvacHIycHOy5uRh5eY4P/g1g8fGD4JiGFxvg7wgOQYEQ9GeACPrz95AgCA4GH+drWoiIiOdQWBAR8TD2nBzsGRnYMjIq/Gvk5ppdWu2VlDp+cvOdX2+xQGgwhIZAWNm/IY5//XzdW6uIiFRJYUFExCSGzYY9LQ3boUOOn9RUbBkZUFJidmmNzzAgr8Dxc+SE64ICHcEh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ZkZhQUSaH3sx5LwFR5+Ekk1mV1M168Owf5jZVUhDWYD4OGiXrJAgIs2OwoKING/5XztCQ/5iPG6dBi3G1rT5+UJygmMa1JAgs6sREWkUCgsi4h2Kt8CxpyD7TTAKza7GQYuxNU0hwdA2CVolOAKDiEgzprAgIt7FmgFZL0LWc2A9ZF4dWoyt6YmNgratoEWMVlwWEa+hsCAi3smwQf5XjvUa8r4ASt17fPsNsHeKe48pdRfgD0nxju5G4aFmVyMi4nYKCyIi1jRH96TsV6Fki3uOqcXYPJfF4mg9SG7p+NdH62CIiPdSWBAROV7hKsdCb7nvgj238Y5z7DvIUn93jxIeCq1aOloSAgPMrkZExCMoLIiIOGMvgLyFkPuB418j33X7NixwYIUWY/MEgQGQ0MLRihARZnY1IiIeR2FBRKQm9kLH+IbcDxzjGxra4qDF2MwVGgwt46BlLESGa7CyiEg1FBZEROrCXuxYsyH3A8c6Cfasuu9Di7G5X2TYnwEhDsJCzK5GRKTJUFgQEakvw+oY45D/tSNAFK0FatG1SIuxNT5fH4iOdAxQbhkLwVo0TUSkPhQWRERcxXYU8pc4gkP+12Dd73w7LcbmehYLRIU71kKIjXb8X7MYiYg0mMKCiEhjKd4CBUug4Eco/NERHrQYm+tEhP0ZDqIcrQhaTVlExOUUFkRE3KV0P+TthMOtITsXcvLArhmRaiXA39FaEBnx57/h4O9ndlUiIs2ewoKIiFnsdsjNh6xcyMuHvALILYBSN68m7WkCAxytBhFhjoHJEWEacyAiYhKFBRERT1Nc4ggOeQWOEJH757+lVrMrcx0fH8cUpmU/IcEQGuL4f4C/2dWJiMifFBZERJqK0lIoLIai4r/+LTrhd085pQf4O1oIggIc/wYGQGDgX+EgKFDrG4iINAEKCyIizYVhQEmp48dqhVLbn/9aHf9abRX/bxh/hYvj/zUA/vzXYnFMQ+rnC75lPz5//d/vz9/LwkHZj4KAiEizoLAgIiIiIiJOaRJqERERERFxSmFBREREREScUlgQERERERGnFBZERERERMQphQUREREREXFKYUFERERERJxSWBAREREREacUFkRERERExCmFBRERERERcUphQUREREREnFJYEBERERERpxQWRERERETEKYUFERERERFxSmFBREREREScUlgQERERERGnFBZERERERMQphQUREREREXFKYUFERERERJxSWBAREREREacUFkRERERExCmFBRERERERcUphQUREREREnFJYEBERERERpxQWRERERETEKYUFERERERFxSmFBREREREScUlgQERERERGnFBZERERERMQphQUREREREXFKYUFERERERJxSWBAREREREacUFkRERERExCmFBRERERERcUphQUREREREnFJYEBERERERpxQWRERERETEKYUFERERERFxSmFBREREREScUlgQERERERGnFBZERERERMQphQUREREREXFKYUFERERERJxSWBAREREREacUFkRERERExCmFBRERERERcUphQUREREREnFJYEBERERERpxQWRERERETEKYUFERERERFxSmFBREREREScUlgQERERERGnFBZERERERMQphQUREREREXFKYUFERERERJxSWBAREREREaf+H9Dnb4XNteTFAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "学生成绩排名：\n",
      "    ID    姓名  总分    排名   分类\n",
      "10  11  学生11  85   1.0   良好\n",
      "6    7   学生7  84   2.0   良好\n",
      "25  26  学生26  83   3.0   良好\n",
      "12  13  学生13  83   3.0   良好\n",
      "26  27  学生27  82   5.0   良好\n",
      "0    1   学生1  81   6.0   良好\n",
      "27  28  学生28  81   6.0   良好\n",
      "20  21  学生21  81   6.0   良好\n",
      "14  15  学生15  80   9.0   良好\n",
      "29  30  学生30  79  10.0   中等\n",
      "22  23  学生23  78  11.0   中等\n",
      "8    9   学生9  76  12.0   中等\n",
      "18  19  学生19  76  12.0   中等\n",
      "4    5   学生5  74  14.0   中等\n",
      "16  17  学生17  73  15.0   中等\n",
      "24  25  学生25  73  15.0   中等\n",
      "28  29  学生29  70  17.0   中等\n",
      "2    3   学生3  70  17.0   中等\n",
      "5    6   学生6  38  19.0  不及格\n",
      "21  22  学生22  36  20.0  不及格\n",
      "15  16  学生16  36  20.0  不及格\n",
      "19  20  学生20  36  20.0  不及格\n",
      "17  18  学生18  36  20.0  不及格\n",
      "13  14  学生14  36  20.0  不及格\n",
      "23  24  学生24  33  25.0  不及格\n",
      "1    2   学生2  33  25.0  不及格\n",
      "11  12  学生12  32  27.0  不及格\n",
      "7    8   学生8  32  27.0  不及格\n",
      "3    4   学生4  31  29.0  不及格\n",
      "9   10  学生10  31  29.0  不及格\n",
      "学生 1 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 2（正确）\n",
      "题11：得分 8（正确）\n",
      "题12：得分 7（正确）\n",
      "题13：得分 9（正确）\n",
      "题14：得分 6（正确）\n",
      "题15：得分 10（正确）\n",
      "题16：得分 10（正确）\n",
      "题17：得分 15（正确）\n",
      "题18：得分 16（正确）\n",
      "题19：得分 40（正确）\n",
      "\n",
      "学生 2 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 2（正确）\n",
      "题11：得分 6（正确）\n",
      "题12：得分 0\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 5（正确）\n",
      "题14：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题15：得分 1\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 2\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 8\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 8\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题19：得分 15（正确）\n",
      "\n",
      "学生 3 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 9（正确）\n",
      "题12：得分 5（正确）\n",
      "题13：得分 7（正确）\n",
      "题14：得分 6（正确）\n",
      "题15：得分 6（正确）\n",
      "题16：得分 11（正确）\n",
      "题17：得分 10（正确）\n",
      "题18：得分 16（正确）\n",
      "题19：得分 33（正确）\n",
      "\n",
      "学生 4 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题15：得分 1\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 3\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 5\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 12（正确）\n",
      "题19：得分 11（正确）\n",
      "\n",
      "学生 5 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 8（正确）\n",
      "题12：得分 7（正确）\n",
      "题13：得分 7（正确）\n",
      "题14：得分 9（正确）\n",
      "题15：得分 8（正确）\n",
      "题16：得分 13（正确）\n",
      "题17：得分 12（正确）\n",
      "题18：得分 10（正确）\n",
      "题19：得分 39（正确）\n",
      "\n",
      "学生 6 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 4\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 5（正确）\n",
      "题13：得分 5（正确）\n",
      "题14：得分 5（正确）\n",
      "题15：得分 6（正确）\n",
      "题16：得分 0\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 5\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 8\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题19：得分 25（正确）\n",
      "\n",
      "学生 7 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 9（正确）\n",
      "题12：得分 10（正确）\n",
      "题13：得分 7（正确）\n",
      "题14：得分 10（正确）\n",
      "题15：得分 10（正确）\n",
      "题16：得分 11（正确）\n",
      "题17：得分 13（正确）\n",
      "题18：得分 14（正确）\n",
      "题19：得分 46（正确）\n",
      "\n",
      "学生 8 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 5（正确）\n",
      "题14：得分 5（正确）\n",
      "题15：得分 4\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 4\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 8\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 2\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题19：得分 18（正确）\n",
      "\n",
      "学生 9 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 7（正确）\n",
      "题12：得分 5（正确）\n",
      "题13：得分 9（正确）\n",
      "题14：得分 9（正确）\n",
      "题15：得分 8（正确）\n",
      "题16：得分 14（正确）\n",
      "题17：得分 12（正确）\n",
      "题18：得分 12（正确）\n",
      "题19：得分 38（正确）\n",
      "\n",
      "学生 10 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 0\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题15：得分 6（正确）\n",
      "题16：得分 9\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 2\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 6\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题19：得分 14（正确）\n",
      "\n",
      "学生 11 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 8（正确）\n",
      "题12：得分 6（正确）\n",
      "题13：得分 8（正确）\n",
      "题14：得分 8（正确）\n",
      "题15：得分 8（正确）\n",
      "题16：得分 13（正确）\n",
      "题17：得分 14（正确）\n",
      "题18：得分 20（正确）\n",
      "题19：得分 38（正确）\n",
      "\n",
      "学生 12 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 0\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 1\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 5（正确）\n",
      "题15：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 8\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 10（正确）\n",
      "题18：得分 4\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题19：得分 10（正确）\n",
      "\n",
      "学生 13 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 9（正确）\n",
      "题12：得分 5（正确）\n",
      "题13：得分 7（正确）\n",
      "题14：得分 10（正确）\n",
      "题15：得分 10（正确）\n",
      "题16：得分 12（正确）\n",
      "题17：得分 12（正确）\n",
      "题18：得分 18（正确）\n",
      "题19：得分 41（正确）\n",
      "\n",
      "学生 14 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 4\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 4\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 1\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题15：得分 0\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 7\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 3\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 14（正确）\n",
      "题19：得分 12（正确）\n",
      "\n",
      "学生 15 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 2（正确）\n",
      "题11：得分 7（正确）\n",
      "题12：得分 7（正确）\n",
      "题13：得分 5（正确）\n",
      "题14：得分 10（正确）\n",
      "题15：得分 6（正确）\n",
      "题16：得分 12（正确）\n",
      "题17：得分 15（正确）\n",
      "题18：得分 18（正确）\n",
      "题19：得分 35（正确）\n",
      "\n",
      "学生 16 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 5（正确）\n",
      "题13：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 6（正确）\n",
      "题15：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 3\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 3\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 12（正确）\n",
      "题19：得分 18（正确）\n",
      "\n",
      "学生 17 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 6（正确）\n",
      "题12：得分 7（正确）\n",
      "题13：得分 5（正确）\n",
      "题14：得分 9（正确）\n",
      "题15：得分 5（正确）\n",
      "题16：得分 12（正确）\n",
      "题17：得分 13（正确）\n",
      "题18：得分 16（正确）\n",
      "题19：得分 32（正确）\n",
      "\n",
      "学生 18 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 1\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 1\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 6（正确）\n",
      "题15：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 1\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 9\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 12（正确）\n",
      "题19：得分 14（正确）\n",
      "\n",
      "学生 19 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 2（正确）\n",
      "题11：得分 6（正确）\n",
      "题12：得分 8（正确）\n",
      "题13：得分 7（正确）\n",
      "题14：得分 9（正确）\n",
      "题15：得分 8（正确）\n",
      "题16：得分 14（正确）\n",
      "题17：得分 12（正确）\n",
      "题18：得分 12（正确）\n",
      "题19：得分 38（正确）\n",
      "\n",
      "学生 20 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 6（正确）\n",
      "题15：得分 1\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 7\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 6\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 10（正确）\n",
      "题19：得分 13（正确）\n",
      "\n",
      "学生 21 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 8（正确）\n",
      "题12：得分 9（正确）\n",
      "题13：得分 9（正确）\n",
      "题14：得分 6（正确）\n",
      "题15：得分 6（正确）\n",
      "题16：得分 15（正确）\n",
      "题17：得分 10（正确）\n",
      "题18：得分 18（正确）\n",
      "题19：得分 38（正确）\n",
      "\n",
      "学生 22 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 2（正确）\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 4\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题12：得分 5（正确）\n",
      "题13：得分 5（正确）\n",
      "题14：得分 6（正确）\n",
      "题15：得分 6（正确）\n",
      "题16：得分 4\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 2\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 4\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题19：得分 26（正确）\n",
      "\n",
      "学生 23 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 5（正确）\n",
      "题12：得分 10（正确）\n",
      "题13：得分 6（正确）\n",
      "题14：得分 7（正确）\n",
      "题15：得分 10（正确）\n",
      "题16：得分 14（正确）\n",
      "题17：得分 12（正确）\n",
      "题18：得分 14（正确）\n",
      "题19：得分 38（正确）\n",
      "\n",
      "学生 24 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题5：得分 2（正确）\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 6（正确）\n",
      "题12：得分 0\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题13：得分 3\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题14：得分 4\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题15：得分 2\n",
      "  本题为简答题，回答情况不佳，建议加强复习。\n",
      "题16：得分 7\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题17：得分 1\n",
      "  本题回答有欠缺，建议进一步学习。\n",
      "题18：得分 10（正确）\n",
      "题19：得分 15（正确）\n",
      "\n",
      "学生 25 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 5（正确）\n",
      "题12：得分 9（正确）\n",
      "题13：得分 5（正确）\n",
      "题14：得分 7（正确）\n",
      "题15：得分 10（正确）\n",
      "题16：得分 10（正确）\n",
      "题17：得分 15（正确）\n",
      "题18：得分 12（正确）\n",
      "题19：得分 36（正确）\n",
      "\n",
      "学生 26 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 8（正确）\n",
      "题12：得分 9（正确）\n",
      "题13：得分 9（正确）\n",
      "题14：得分 7（正确）\n",
      "题15：得分 9（正确）\n",
      "题16：得分 14（正确）\n",
      "题17：得分 15（正确）\n",
      "题18：得分 12（正确）\n",
      "题19：得分 42（正确）\n",
      "\n",
      "学生 27 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题3：得分 2（正确）\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 2（正确）\n",
      "题7：得分 2（正确）\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题11：得分 8（正确）\n",
      "题12：得分 8（正确）\n",
      "题13：得分 8（正确）\n",
      "题14：得分 10（正确）\n",
      "题15：得分 10（正确）\n",
      "题16：得分 10（正确）\n",
      "题17：得分 12（正确）\n",
      "题18：得分 16（正确）\n",
      "题19：得分 44（正确）\n",
      "\n",
      "学生 28 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 2（正确）\n",
      "题8：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 9（正确）\n",
      "题12：得分 7（正确）\n",
      "题13：得分 6（正确）\n",
      "题14：得分 10（正确）\n",
      "题15：得分 8（正确）\n",
      "题16：得分 12（正确）\n",
      "题17：得分 15（正确）\n",
      "题18：得分 14（正确）\n",
      "题19：得分 40（正确）\n",
      "\n",
      "学生 29 的成绩分析报告：\n",
      "题1：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 2（正确）\n",
      "题6：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 5（正确）\n",
      "题12：得分 6（正确）\n",
      "题13：得分 8（正确）\n",
      "题14：得分 9（正确）\n",
      "题15：得分 8（正确）\n",
      "题16：得分 10（正确）\n",
      "题17：得分 12（正确）\n",
      "题18：得分 12（正确）\n",
      "题19：得分 36（正确）\n",
      "\n",
      "学生 30 的成绩分析报告：\n",
      "题1：得分 2（正确）\n",
      "题2：得分 2（正确）\n",
      "题3：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题4：得分 2（正确）\n",
      "题5：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题6：得分 2（正确）\n",
      "题7：得分 0\n",
      "  本题为选择题，回答错误，建议复习相关知识点。\n",
      "题8：得分 2（正确）\n",
      "题9：得分 2（正确）\n",
      "题10：得分 2（正确）\n",
      "题11：得分 8（正确）\n",
      "题12：得分 9（正确）\n",
      "题13：得分 5（正确）\n",
      "题14：得分 6（正确）\n",
      "题15：得分 9（正确）\n",
      "题16：得分 15（正确）\n",
      "题17：得分 13（正确）\n",
      "题18：得分 14（正确）\n",
      "题19：得分 37（正确）\n",
      "\n",
      "['选择题第 3 题学生整体得分较低，建议加强该知识点的教学。', '其他题第 1 题学生整体得分较低，建议补充教学内容。', '其他题第 2 题学生整体得分较低，建议补充教学内容。']\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "class GradeAnalysis:\n",
    "    def __init__(self, file_path):\n",
    "        # 导入数据\n",
    "        self.data = pd.read_excel(file_path, engine='openpyxl')\n",
    "        self.students = self._process_data()\n",
    "\n",
    "    def _process_data(self):\n",
    "        \"\"\"\n",
    "        处理 Excel 数据并存储为字典格式\n",
    "        \"\"\"\n",
    "        students = {}\n",
    "        for _, row in self.data.iterrows():\n",
    "            student_id = str(row['ID'])  # 学生ID\n",
    "            students[student_id] = {\n",
    "                \"name\": row['姓名'],  # 学生姓名\n",
    "                \"scores\": row[2:-2].tolist(),  # 各题得分（去除选择题总分、编程题总分和总分列）\n",
    "            }\n",
    "        return students\n",
    "\n",
    "    def grade_distribution(self):\n",
    "        \"\"\"\n",
    "        统计成绩分布：成绩区间人数\n",
    "        \"\"\"\n",
    "        bins = [0, 60, 70, 80, 90, 100]  # 分数区间\n",
    "        labels = ['不及格', '及格', '中等', '良好', '优秀']\n",
    "        self.data['分数区间'] = pd.cut(self.data['总分'], bins=bins, labels=labels, right=False)\n",
    "        distribution = self.data['分数区间'].value_counts().sort_index()\n",
    "        return distribution\n",
    "\n",
    "    def pass_rate_and_average(self):\n",
    "        \"\"\"\n",
    "        统计及格率和平均分\n",
    "        \"\"\"\n",
    "        total_students = len(self.data)\n",
    "        passed_students = len(self.data[self.data['总分'] >= 60])\n",
    "        pass_rate = passed_students / total_students * 100\n",
    "        average_score = self.data['总分'].mean()\n",
    "        return pass_rate, average_score\n",
    "\n",
    "    def single_question_analysis(self):\n",
    "        \"\"\"\n",
    "        单题得分分析：统计每道题的平均分、最高分、最低分，并区分题型判断得分情况\n",
    "        \"\"\"\n",
    "        question_columns = self.data.columns[2:-2]  # 去除选择题总分、编程题总分和总分列\n",
    "        analysis = {}\n",
    "        for index, question in enumerate(question_columns):\n",
    "            # 检查列的数据类型是否为数值型\n",
    "            if pd.api.types.is_numeric_dtype(self.data[question]):\n",
    "                average_score = self.data[question].mean()\n",
    "                max_score = self.data[question].max()\n",
    "                min_score = self.data[question].min()\n",
    "                if index < 10:  # 假设前 10 题为选择题，每题 2 分\n",
    "                    if average_score < 1:  # 根据选择题分值调整判断标准\n",
    "                        question_type = \"选择题（较难）\"\n",
    "                    else:\n",
    "                        question_type = \"选择题（较易）\"\n",
    "                elif index < 15:  # 假设接下来 5 题为简答题，每题 10 分\n",
    "                    if average_score < 5:\n",
    "                        question_type = \"简答题（较难）\"\n",
    "                    else:\n",
    "                        question_type = \"简答题（较易）\"\n",
    "                else:  # 其他题\n",
    "                    if average_score < 10:\n",
    "                        question_type = \"其他题（较难）\"\n",
    "                    else:\n",
    "                        question_type = \"其他题（较易）\"\n",
    "                analysis[question] = {\n",
    "                    \"average\": average_score,\n",
    "                    \"max\": max_score,\n",
    "                    \"min\": min_score,\n",
    "                    \"type\": question_type\n",
    "                }\n",
    "        return analysis\n",
    "\n",
    "    def rank_students(self):\n",
    "        \"\"\"\n",
    "        按总分排名，并分类统计\n",
    "        \"\"\"\n",
    "        self.data['排名'] = self.data['总分'].rank(ascending=False, method='min')  # 按总分排名\n",
    "        bins = [0, 60, 70, 80, 90, 100]  # 分数区间\n",
    "        labels = ['不及格', '及格', '中等', '良好', '优秀']\n",
    "        self.data['分类'] = pd.cut(self.data['总分'], bins=bins, labels=labels, right=False)\n",
    "        rank_data = self.data.sort_values(by='总分', ascending=False)[['ID', '姓名', '总分', '排名', '分类']]\n",
    "        return rank_data\n",
    "\n",
    "    # 学生个性化反馈报告生成\n",
    "    def generate_student_feedback(self, student_id):\n",
    "        # 检查学生ID是否在self.students中\n",
    "        if student_id in self.students:\n",
    "            student_info = self.students[student_id]\n",
    "            feedback = f\"学生 {student_id} 的成绩分析报告：\\n\"\n",
    "            for i, score in enumerate(student_info['scores']):\n",
    "                question_name = f\"题{i + 1}\"\n",
    "                if i < 10 and score >= 1:  # 根据选择题分值调整判断标准，判断为正确\n",
    "                    feedback += f\"{question_name}：得分 {score}（正确）\\n\"\n",
    "                elif 10 <= i < 15 and score >= 5:  # 简答题判断为正确\n",
    "                    feedback += f\"{question_name}：得分 {score}（正确）\\n\"\n",
    "                elif i >= 15 and score >= 10:  # 其他题判断为正确\n",
    "                    feedback += f\"{question_name}：得分 {score}（正确）\\n\"\n",
    "                else:\n",
    "                    feedback += f\"{question_name}：得分 {score}\\n\"\n",
    "                    if i < 10 and score < 1:  # 根据选择题分值调整判断标准\n",
    "                        feedback += f\"  本题为选择题，回答错误，建议复习相关知识点。\\n\"\n",
    "                    elif 10 <= i < 15 and score < 5:  # 简答题判断\n",
    "                        feedback += f\"  本题为简答题，回答情况不佳，建议加强复习。\\n\"\n",
    "                    elif i >= 15 and score < 10:  # 其他题判断\n",
    "                        feedback += f\"  本题回答有欠缺，建议进一步学习。\\n\"\n",
    "            return feedback\n",
    "        else:\n",
    "            print(f\"未找到ID为 {student_id} 的学生信息。\")\n",
    "            return None\n",
    "\n",
    "    # 教学改进建议生成\n",
    "    def generate_teaching_improvement(self):\n",
    "        question_scores = []\n",
    "        for question in self.data.columns[2:-2]:\n",
    "            # 检查列的数据类型是否为数值型\n",
    "            if pd.api.types.is_numeric_dtype(self.data[question]):\n",
    "                scores = self.data[question]\n",
    "                average_score = scores.mean()\n",
    "                question_scores.append(average_score)\n",
    "\n",
    "        improvement_suggestions = []\n",
    "        for i, score in enumerate(question_scores):\n",
    "            if i < 10 and score < 1:  # 根据选择题分值调整判断标准\n",
    "                improvement_suggestions.append(f\"选择题第 {i + 1} 题学生整体得分较低，建议加强该知识点的教学。\")\n",
    "            elif 10 <= i < 15 and score < 5:  # 简答题判断\n",
    "                improvement_suggestions.append(f\"简答题第 {i - 9} 题学生整体得分较低，建议详细讲解。\")\n",
    "            elif i >= 15 and score < 10:  # 其他题判断\n",
    "                improvement_suggestions.append(f\"其他题第 {i - 14} 题学生整体得分较低，建议补充教学内容。\")\n",
    "\n",
    "        return improvement_suggestions\n",
    "\n",
    "    # 生成成绩分布柱状图\n",
    "    def plot_grade_distribution(self):\n",
    "        distribution = self.grade_distribution()\n",
    "        plt.figure(figsize=(8, 6))\n",
    "        bars = plt.bar(distribution.index, distribution.values, color='skyblue')\n",
    "        plt.xlabel('Score range', fontsize=12)\n",
    "        plt.ylabel('Number of people', fontsize=12)\n",
    "        plt.title('Column chart of class grade distribution', fontsize=14)\n",
    "        \n",
    "        # 设置横坐标标签\n",
    "        plt.xticks(distribution.index, labels=['fail', 'pass', 'medium', 'good', 'excellent'], fontsize=10)\n",
    "        plt.yticks(fontsize=10)\n",
    "        plt.grid(axis='y', linestyle='--', alpha=0.7)\n",
    "\n",
    "        # 在柱状图上显示具体数值\n",
    "        for bar in bars:\n",
    "            height = bar.get_height()\n",
    "            plt.text(bar.get_x() + bar.get_width() / 2, height, f'{int(height)}', ha='center', va='bottom')\n",
    "\n",
    "        plt.show()\n",
    "\n",
    "    # 生成各题型得分平均分布饼状图\n",
    "    def plot_question_type_average_distribution(self):\n",
    "        question_analysis = self.single_question_analysis()\n",
    "        types = {}\n",
    "        for question in question_analysis:\n",
    "            question_type = question_analysis[question]['type']\n",
    "            if question_type in types:\n",
    "                types[question_type].append(question_analysis[question]['average'])\n",
    "            else:\n",
    "                types[question_type] = [question_analysis[question]['average']]\n",
    "        for question_type in types:\n",
    "            types[question_type] = sum(types[question_type]) / len(types[question_type])\n",
    "\n",
    "        # 定义颜色列表\n",
    "        colors = ['lightcoral', 'lightgreen', 'lightskyblue', 'gold', 'lightpink', 'lightyellow', 'lightcyan']\n",
    "\n",
    "        # 定义标签\n",
    "        labels = ['1', '2', '3', '4', '5']\n",
    "\n",
    "        plt.figure(figsize=(8, 6))\n",
    "        wedges, texts, autotexts = plt.pie(\n",
    "            types.values(), \n",
    "            labels=labels[:len(types)],  # 使用数字标签\n",
    "            autopct='%1.1f%%', \n",
    "            startangle=90, \n",
    "            colors=colors[:len(types)],  # 使用定义的颜色列表\n",
    "            textprops={'fontsize': 10}\n",
    "        )\n",
    "        plt.title('Pie chart of average scores distribution for various question types in the class', fontsize=14)\n",
    "        \n",
    "        # 创建图例，使用数字标签\n",
    "        plt.legend(wedges, labels[:len(types)], title=\"Question type\", loc=\"center left\", bbox_to_anchor=(1, 0, 0.5, 1), handlelength=0)\n",
    "        \n",
    "        plt.show()\n",
    "\n",
    "\n",
    "# 示例：使用数据分析功能，这里使用上传的文件路径\n",
    "file_path = input(\"请输入 Excel 文件路径：\")\n",
    "analysis = GradeAnalysis(file_path)\n",
    "\n",
    "# 1. 成绩分布统计\n",
    "print(\"成绩分布统计：\")\n",
    "print(analysis.grade_distribution())\n",
    "\n",
    "# 2. 成绩分布柱状图绘制\n",
    "analysis.plot_grade_distribution()\n",
    "\n",
    "# 3. 统计及格率和平均分\n",
    "pass_rate, average_score = analysis.pass_rate_and_average()\n",
    "print(f\"\\n及格率：{pass_rate:.2f}%\")\n",
    "print(f\"平均分：{average_score:.2f}\")\n",
    "\n",
    "# 4. 单题得分分析\n",
    "print(\"\\n单题得分分析：\")\n",
    "single_question_stats = analysis.single_question_analysis()\n",
    "for question, stats in single_question_stats.items():\n",
    "    print(f\"{question} - 平均分: {stats['average']:.2f}, 最高分: {stats['max']}, 最低分: {stats['min']}, 类型: {stats['type']}\")\n",
    "\n",
    "# 5. 各题型得分平均分布饼状图绘制\n",
    "analysis.plot_question_type_average_distribution()\n",
    "\n",
    "# 6. 学生成绩排名\n",
    "print(\"\\n学生成绩排名：\")\n",
    "print(analysis.rank_students())\n",
    "\n",
    "# 7. 对 30 个学生进行个性化分析\n",
    "for student_id in analysis.students.keys():\n",
    "        print(analysis.generate_student_feedback(student_id))\n",
    "\n",
    "# 8. 生成教学改进建议\n",
    "print(analysis.generate_teaching_improvement())"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
